Changeset 2456 for trunk/src/winmm/mciseq/mciseq.cpp
- Timestamp:
- Jan 15, 2000, 11:02:50 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/winmm/mciseq/mciseq.cpp
r2308 r2456 51 51 HMMIO hFile; /* mmio file handle open as Element */ 52 52 LPCSTR lpstrElementName; /* Name of file */ 53 LPCSTR lpstrCopyright; 54 LPCSTR lpstrName; 53 55 WORD dwStatus; /* one from MCI_MODE_xxxx */ 54 56 DWORD dwMciTimeFormat; /* One of the supported MCI_FORMAT_xxxx */ … … 371 373 mmt->dwEventPulse = 0; 372 374 373 while (MIDI_mciReadNextEvent(wmm, mmt) == 0 && 374 LOWORD(mmt->dwEventData) != 0x2FFF) { 375 while (MIDI_mciReadNextEvent(wmm, mmt) == 0 && LOWORD(mmt->dwEventData) != 0x2FFF) { 376 char buf[1024]; 377 WORD len; 378 375 379 mmt->dwIndex += mmt->wEventLength; 380 381 switch (LOWORD(mmt->dwEventData)) { 382 case 0x02FF: 383 case 0x03FF: 384 /* position after meta data header */ 385 mmioSeek(wmm->hFile, mmt->dwIndex + HIWORD(mmt->dwEventData), SEEK_SET); 386 len = mmt->wEventLength - HIWORD(mmt->dwEventData); 387 388 if (len >= sizeof(buf)) { 389 WARN("Buffer for text is too small (%d bytes, when %u are needed)\n", sizeof(buf) - 1, len); 390 len = sizeof(buf) - 1; 391 } 392 if (mmioRead(wmm->hFile, (HPSTR)buf, len) == len) { 393 buf[len] = 0; /* end string in case */ 394 switch (HIBYTE(LOWORD(mmt->dwEventData))) { 395 case 0x02: 396 if (wmm->lpstrCopyright) { 397 WARN("Two copyright notices (%s|%s)\n", wmm->lpstrCopyright, buf); 398 } else { 399 wmm->lpstrCopyright = HEAP_strdupA(GetProcessHeap(), 0, buf); 400 } 401 break; 402 case 0x03: 403 if (wmm->lpstrCopyright) { 404 WARN("Two names (%s|%s)\n", wmm->lpstrName, buf); 405 } else { 406 wmm->lpstrName = HEAP_strdupA(GetProcessHeap(), 0, buf); 407 } 408 break; 409 } 410 } 411 break; 412 } 376 413 } 377 414 mmt->dwLength = mmt->dwEventPulse; … … 681 718 682 719 if (dwFlags & MCI_OPEN_ELEMENT) { 683 LPSTR lpstrElementName; 684 685 lpstrElementName = lpParms->lpstrElementName; 686 687 TRACE("MCI_OPEN_ELEMENT '%s' !\n", lpstrElementName); 688 if (lpstrElementName && strlen(lpstrElementName) > 0) { 689 wmm->hFile = mmioOpenA(lpstrElementName, NULL, 720 TRACE("MCI_OPEN_ELEMENT '%s' !\n", lpParms->lpstrElementName); 721 if (lpParms->lpstrElementName && strlen(lpParms->lpstrElementName) > 0) { 722 wmm->hFile = mmioOpenA(lpParms->lpstrElementName, NULL, 690 723 MMIO_ALLOCBUF | MMIO_READ | MMIO_DENYWRITE); 691 724 if (wmm->hFile == 0) { 692 WARN("Can't find file '%s' !\n", lp strElementName);725 WARN("Can't find file '%s' !\n", lpParms->lpstrElementName); 693 726 wmm->nUseCount--; 694 727 return MCIERR_FILE_NOT_FOUND; … … 701 734 702 735 /* FIXME: should I get a strdup() of it instead? */ 703 wmm->lpstrElementName = lpParms->lpstrElementName; 704 736 wmm->lpstrElementName = HEAP_strdupA(GetProcessHeap(), 0, lpParms->lpstrElementName); 737 wmm->lpstrCopyright = NULL; 738 wmm->lpstrName = NULL; 739 705 740 wmm->wNotifyDeviceID = dwDeviceID; 706 741 wmm->dwStatus = MCI_MODE_NOT_READY; /* while loading file contents */ … … 801 836 } 802 837 HeapFree(GetProcessHeap(), 0, wmm->tracks); 838 HeapFree(GetProcessHeap(), 0, (LPSTR)wmm->lpstrElementName); 839 HeapFree(GetProcessHeap(), 0, (LPSTR)wmm->lpstrCopyright); 840 HeapFree(GetProcessHeap(), 0, (LPSTR)wmm->lpstrName); 803 841 } else { 804 842 TRACE("Shouldn't happen... nUseCount=%d\n", wmm->nUseCount); … … 906 944 wmm->wStartedPlaying = FALSE; 907 945 908 dwRet = midiOutOpen(&wmm->hMidi, 0, 0L, 0L, CALLBACK_NULL);909 /* dwRet = midiInOpen(&wmm->hMidi, 0, 0L, 0L, CALLBACK_NULL);*/946 dwRet = midiOutOpen(&wmm->hMidi, MIDIMAPPER, 0L, 0L, CALLBACK_NULL); 947 /* dwRet = midiInOpen(&wmm->hMidi, MIDIMAPPER, 0L, 0L, CALLBACK_NULL);*/ 910 948 911 949 while (wmm->dwStatus != MCI_MODE_STOP) { … … 987 1025 TRACE("%s => \"%s\"\n", (idx < 8 ) ? info[idx] : "", buf); 988 1026 } else { 989 WARN("Couldn't read data for %s\n", (idx < 8 1027 WARN("Couldn't read data for %s\n", (idx < 8) ? info[idx] : ""); 990 1028 } 991 1029 } … … 1508 1546 TRACE("buf=%p, len=%lu\n", lpParms->lpstrReturn, lpParms->dwRetSize); 1509 1547 1510 switch (dwFlags ) {1548 switch (dwFlags & ~(MCI_WAIT|MCI_NOTIFY)) { 1511 1549 case MCI_INFO_PRODUCT: 1512 1550 str = "Wine's MIDI sequencer"; … … 1515 1553 str = wmm->lpstrElementName; 1516 1554 break; 1517 #if 01518 /* FIXME: the following manifest constants are not defined in <WINE>/include/mmsystem.h */1519 1555 case MCI_INFO_COPYRIGHT: 1556 str = wmm->lpstrCopyright; 1557 break; 1558 case MCI_INFO_NAME: 1559 str = wmm->lpstrName; 1520 1560 break; 1521 case MCI_INFO_NAME:1522 break;1523 #endif1524 1561 default: 1525 1562 WARN("Don't know this info command (%lu)\n", dwFlags);
Note:
See TracChangeset
for help on using the changeset viewer.