- Timestamp:
- Oct 10, 2001, 4:47:42 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmdisk.cpp
r6978 r6984 1 /* $Id: hmdisk.cpp,v 1.1 4 2001-10-10 11:01:17phaller Exp $ */1 /* $Id: hmdisk.cpp,v 1.15 2001-10-10 14:47:42 phaller Exp $ */ 2 2 3 3 /* … … 177 177 //****************************************************************************** 178 178 //****************************************************************************** 179 179 180 180 181 // this helper function just calls the specified … … 487 488 break; 488 489 489 case IOCTL_DISK_CHECK_VERIFY:490 case IOCTL_DISK_EJECT_MEDIA:491 490 case IOCTL_DISK_FORMAT_TRACKS: 492 491 case IOCTL_DISK_GET_DRIVE_LAYOUT: … … 533 532 case IOCTL_CDROM_READ_TOC: 534 533 case IOCTL_CDROM_GET_CONTROL: 534 break; 535 535 536 case IOCTL_CDROM_PLAY_AUDIO_MSF: 537 { 538 dprintf(("Play CDROM audio playback")); 539 540 #pragma pack(1) 541 struct 542 { 543 DWORD ucSignature; 544 BYTE ucAddressingMode; 545 DWORD ulStartingMSF; 546 DWORD ulEndingMSF; 547 } ParameterBlock; 548 #pragma pack() 549 550 PCDROM_PLAY_AUDIO_MSF pPlay = (PCDROM_PLAY_AUDIO_MSF)lpInBuffer; 551 552 // setup the parameter block 553 ParameterBlock.ucSignature = 0x43443031; // 'CD01' 554 ParameterBlock.ucAddressingMode = 1; // MSF format 555 556 // @@@PH unknown if this kind of MSF conversion is correct! 557 ParameterBlock.ulStartingMSF = pPlay->StartingM << 16 | 558 pPlay->StartingS << 8 | 559 pPlay->StartingF; 560 ParameterBlock.ulEndingMSF = pPlay->EndingM << 16 | 561 pPlay->EndingS << 8 | 562 pPlay->EndingF; 563 564 DWORD dwParameterSize = sizeof( ParameterBlock ); 565 DWORD dwDataSize = 0; 566 DWORD ret; 567 568 if(lpBytesReturned) 569 *lpBytesReturned = 0; 570 571 ret = OSLibDosDevIOCtl(pHMHandleData->hHMHandle, 572 0x81, // IOCTL_CDROMAUDIO 573 0x50, // CDROMAUDIO_PLAYAUDIO 574 &ParameterBlock, 575 sizeof( ParameterBlock ), 576 &dwParameterSize, 577 NULL, 578 0, 579 &dwDataSize); 580 if(ret) 581 { 582 SetLastError(error2WinError(ret)); 583 return FALSE; 584 } 585 SetLastError(ERROR_SUCCESS); 586 return TRUE; 587 } 588 536 589 case IOCTL_CDROM_SEEK_AUDIO_MSF: 537 590 break; … … 663 716 // ------------- 664 717 718 case IOCTL_DISK_CHECK_VERIFY: 665 719 case IOCTL_STORAGE_CHECK_VERIFY: 720 dprintf(("IOCTL_STORAGE_CHECK_VERIFY incompletely implemented")); 666 721 if(lpBytesReturned) { 667 722 *lpBytesReturned = 0; … … 675 730 return TRUE; 676 731 732 case IOCTL_DISK_EJECT_MEDIA: 677 733 case IOCTL_STORAGE_EJECT_MEDIA: 678 734 {
Note:
See TracChangeset
for help on using the changeset viewer.