1363 |
* Use this constructor if you want to create a new RIFF file completely |
* Use this constructor if you want to create a new RIFF file completely |
1364 |
* "from scratch". Note: there must be no empty chunks or empty list |
* "from scratch". Note: there must be no empty chunks or empty list |
1365 |
* chunks when trying to make the new RIFF file persistent with Save()! |
* chunks when trying to make the new RIFF file persistent with Save()! |
1366 |
|
* Note that this constructor will create a RIFX file on |
1367 |
|
* big-endian machines. |
1368 |
* |
* |
1369 |
* @param FileType - four-byte identifier of the RIFF file type |
* @param FileType - four-byte identifier of the RIFF file type |
1370 |
* @see AddSubChunk(), AddSubList() |
* @see AddSubChunk(), AddSubList() |
1380 |
ulStartPos = RIFF_HEADER_SIZE; |
ulStartPos = RIFF_HEADER_SIZE; |
1381 |
ListType = FileType; |
ListType = FileType; |
1382 |
} |
} |
1383 |
|
|
1384 |
|
|
1385 |
|
/** @brief Create new RIFF file. |
1386 |
|
* |
1387 |
|
* Use this constructor if you want to create a new RIFF file |
1388 |
|
* completely "from scratch" and also want to specify |
1389 |
|
* endianess. Note: there must be no empty chunks or empty list |
1390 |
|
* chunks when trying to make the new RIFF file persistent with |
1391 |
|
* Save()! |
1392 |
|
* |
1393 |
|
* @param FileType - four-byte identifier of the RIFF file type |
1394 |
|
* @param Endian - endianess used in the new file. A value of |
1395 |
|
* endian_little will create a RIFF file, |
1396 |
|
* endian_big a RIFX file, endian_native will |
1397 |
|
* create a RIFF file on little-endian machines |
1398 |
|
* and RIFX on big-endian. |
1399 |
|
* @see AddSubChunk(), AddSubList() |
1400 |
|
*/ |
1401 |
|
File::File(uint32_t FileType, endian_t Endian) : List(this) { |
1402 |
|
#if defined(WIN32) |
1403 |
|
hFileRead = hFileWrite = INVALID_HANDLE_VALUE; |
1404 |
|
#else |
1405 |
|
hFileRead = hFileWrite = 0; |
1406 |
|
#endif |
1407 |
|
Mode = stream_mode_closed; |
1408 |
|
#if WORDS_BIGENDIAN |
1409 |
|
bEndianNative = Endian != endian_little; |
1410 |
|
#else |
1411 |
|
bEndianNative = Endian != endian_big; |
1412 |
|
#endif |
1413 |
|
ulStartPos = RIFF_HEADER_SIZE; |
1414 |
|
ListType = FileType; |
1415 |
|
} |
1416 |
|
|
1417 |
/** @brief Load existing RIFF file. |
/** @brief Load existing RIFF file. |
1418 |
* |
* |