/[svn]/libgig/trunk/src/RIFF.cpp
ViewVC logotype

Diff of /libgig/trunk/src/RIFF.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1458 by schoenebeck, Fri Oct 5 09:39:12 2007 UTC revision 1459 by schoenebeck, Fri Oct 26 10:58:41 2007 UTC
# Line 358  namespace RIFF { Line 358  namespace RIFF {
358          #elif defined(WIN32)          #elif defined(WIN32)
359          if (SetFilePointer(pFile->hFileWrite, ulStartPos + ulPos, NULL/*32 bit*/, FILE_BEGIN) == INVALID_SET_FILE_POINTER) {          if (SetFilePointer(pFile->hFileWrite, ulStartPos + ulPos, NULL/*32 bit*/, FILE_BEGIN) == INVALID_SET_FILE_POINTER) {
360              throw Exception("Could not seek to position " + ToString(ulPos) +              throw Exception("Could not seek to position " + ToString(ulPos) +
361                              " in chunk (" + ToString(ulStartPos + ulPos) + " in file)");                                          " in chunk (" + ToString(ulStartPos + ulPos) + " in file)");
362          }          }
363          DWORD writtenWords;          DWORD writtenWords;
364          WriteFile(pFile->hFileWrite, pData, WordCount * WordSize, &writtenWords, NULL);          WriteFile(pFile->hFileWrite, pData, WordCount * WordSize, &writtenWords, NULL);
# Line 1412  namespace RIFF { Line 1412  namespace RIFF {
1412                                       path.c_str(), GENERIC_READ,                                       path.c_str(), GENERIC_READ,
1413                                       FILE_SHARE_READ | FILE_SHARE_WRITE,                                       FILE_SHARE_READ | FILE_SHARE_WRITE,
1414                                       NULL, OPEN_EXISTING,                                       NULL, OPEN_EXISTING,
1415                                       FILE_ATTRIBUTE_NORMAL, NULL                                       FILE_ATTRIBUTE_NORMAL |
1416                                         FILE_FLAG_RANDOM_ACCESS, NULL
1417                                   );                                   );
1418          if (hFileRead == INVALID_HANDLE_VALUE) {          if (hFileRead == INVALID_HANDLE_VALUE) {
1419              hFileRead = hFileWrite = INVALID_HANDLE_VALUE;              hFileRead = hFileWrite = INVALID_HANDLE_VALUE;
# Line 1465  namespace RIFF { Line 1466  namespace RIFF {
1466                                                   Filename.c_str(), GENERIC_READ,                                                   Filename.c_str(), GENERIC_READ,
1467                                                   FILE_SHARE_READ | FILE_SHARE_WRITE,                                                   FILE_SHARE_READ | FILE_SHARE_WRITE,
1468                                                   NULL, OPEN_EXISTING,                                                   NULL, OPEN_EXISTING,
1469                                                   FILE_ATTRIBUTE_NORMAL, NULL                                                   FILE_ATTRIBUTE_NORMAL |
1470                                                     FILE_FLAG_RANDOM_ACCESS,
1471                                                     NULL
1472                                               );                                               );
1473                      if (hFileRead == INVALID_HANDLE_VALUE) {                      if (hFileRead == INVALID_HANDLE_VALUE) {
1474                          hFileRead = hFileWrite = INVALID_HANDLE_VALUE;                          hFileRead = hFileWrite = INVALID_HANDLE_VALUE;
# Line 1493  namespace RIFF { Line 1496  namespace RIFF {
1496                                                   GENERIC_READ | GENERIC_WRITE,                                                   GENERIC_READ | GENERIC_WRITE,
1497                                                   FILE_SHARE_READ,                                                   FILE_SHARE_READ,
1498                                                   NULL, OPEN_ALWAYS,                                                   NULL, OPEN_ALWAYS,
1499                                                   FILE_ATTRIBUTE_NORMAL, NULL                                                   FILE_ATTRIBUTE_NORMAL |
1500                                                     FILE_FLAG_RANDOM_ACCESS,
1501                                                     NULL
1502                                               );                                               );
1503                      if (hFileRead == INVALID_HANDLE_VALUE) {                      if (hFileRead == INVALID_HANDLE_VALUE) {
1504                          hFileRead = hFileWrite = CreateFile(                          hFileRead = hFileWrite = CreateFile(
1505                                                       Filename.c_str(), GENERIC_READ,                                                       Filename.c_str(), GENERIC_READ,
1506                                                       FILE_SHARE_READ | FILE_SHARE_WRITE,                                                       FILE_SHARE_READ | FILE_SHARE_WRITE,
1507                                                       NULL, OPEN_EXISTING,                                                       NULL, OPEN_EXISTING,
1508                                                       FILE_ATTRIBUTE_NORMAL, NULL                                                       FILE_ATTRIBUTE_NORMAL |
1509                                                         FILE_FLAG_RANDOM_ACCESS,
1510                                                         NULL
1511                                                   );                                                   );
1512                          throw Exception("Could not (re)open file \"" + Filename + "\" in read+write mode");                          throw Exception("Could not (re)open file \"" + Filename + "\" in read+write mode");
1513                      }                      }
# Line 1602  namespace RIFF { Line 1609  namespace RIFF {
1609              #if defined(WIN32)              #if defined(WIN32)
1610              DWORD iBytesMoved = 1; // we have to pass it via pointer to the Windows API, thus the correct size must be ensured              DWORD iBytesMoved = 1; // we have to pass it via pointer to the Windows API, thus the correct size must be ensured
1611              #else              #else
1612              int iBytesMoved = 1;              int iBytesMoved = 1;
1613              #endif              #endif
1614              for (unsigned long ulPos = 0; iBytesMoved > 0; ulPos += iBytesMoved) {              for (unsigned long ulPos = 0; iBytesMoved > 0; ulPos += iBytesMoved) {
1615                  const unsigned long ulToMove = ulFileSize - ulPos;                  const unsigned long ulToMove = ulFileSize - ulPos;
# Line 1669  namespace RIFF { Line 1676  namespace RIFF {
1676          #elif defined(WIN32)          #elif defined(WIN32)
1677          hFileWrite = CreateFile(          hFileWrite = CreateFile(
1678                           path.c_str(), GENERIC_WRITE, FILE_SHARE_READ,                           path.c_str(), GENERIC_WRITE, FILE_SHARE_READ,
1679                           NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL                           NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL |
1680                             FILE_FLAG_RANDOM_ACCESS, NULL
1681                       );                       );
1682          if (hFileWrite == INVALID_HANDLE_VALUE) {          if (hFileWrite == INVALID_HANDLE_VALUE) {
1683              hFileWrite = hFileRead;              hFileWrite = hFileRead;

Legend:
Removed from v.1458  
changed lines
  Added in v.1459

  ViewVC Help
Powered by ViewVC