- Timestamp:
- Jan 21, 2001, 2:36:43 PM (25 years ago)
- Location:
- trunk/src/winmm/mcicda
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/winmm/mcicda/cdrom.cpp
r4965 r5005 216 216 case 0: 217 217 SetLastError(ERROR_WRONG_DISK); 218 return -1;218 return 1; 219 219 default: 220 220 break; … … 233 233 ULONG start, last_start = 0; 234 234 int total_length = 0; 235 BOOL flAudioTrack; 235 236 236 237 if(!wcda->hfOS2Handle) { … … 282 283 283 284 for (i = 0; i <= wcda->nTracks; i++) { 284 if((start=os2CDQueryTrackStartSector(wcda->hfOS2Handle,i ))==0)285 if((start=os2CDQueryTrackStartSector(wcda->hfOS2Handle,i,&flAudioTrack))==0) 285 286 { 286 287 WARN("error reading start sector for track %d\n", i+1); … … 313 314 } 314 315 //if(wcda->ulCDROMStatus & ) 315 wcda->lpbTrackFlags[i] = 0; 316 if (!flAudioTrack) 317 wcda->lpbTrackFlags[i] = CDROM_DATA_TRACK; 318 else 319 wcda->lpbTrackFlags[i] = 0; 316 320 //TRACE("track #%u flags=%02x\n", i + 1, wcda->lpbTrackFlags[i]); 317 321 }/* for */ … … 321 325 322 326 return TRUE; 323 324 dprintf(("MCICDA-CDROM: CDAUDIO_GetTracksInfo not implemented.\n"));325 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);326 return FALSE;327 327 } 328 328 -
trunk/src/winmm/mcicda/cdrom.h
r4709 r5005 98 98 BOOL os2GetCDStatus(HFILE hfOS2Handle, ULONG *ulStatus); 99 99 BOOL os2GetCDAudioStatus(HFILE hfOS2Handle, USHORT *usStatus); 100 ULONG os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack );100 ULONG os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack, BOOL *flAudio); 101 101 BOOL os2CDEject(HFILE hfDrive); 102 102 BOOL os2CDCloseTray(HFILE hfDrive); -
trunk/src/winmm/mcicda/os2cdrom.cpp
r4709 r5005 4 4 * 5 5 * Copyright 2000 Chris Wohlgemuth 6 * 6 * 2001 Przemyslaw Dobrowolski 7 7 * Project Odin Software License can be found in LICENSE.TXT 8 8 * … … 27 27 typedef struct 28 28 { 29 int ADR_data_for_track:4; // ADR data for track 30 int preemphasis:1; // 0 = Audio without preemphasis 31 // 1 = Audio with preemphasis 32 int cdda_permitted:1; // 0 = Digital copy prohibited 33 // 1 = Digital copy permitted 34 int type_of_track:1; // 0 = Audio track 35 // 1 = Data track 36 int channels:1; // 0 = Two-channel audio 37 // 1 = Four-channel audio 38 }TRACKTYPE; 39 40 typedef struct 41 { 29 42 ULONG ulTrackAddress; 30 UCHAR ucTCInfo;43 TRACKTYPE track_type; 31 44 }CDTRACKINFO; 32 45 … … 157 170 return 0;//Error 158 171 } 159 160 if(trackInfo.ucTCInfo & 0x40) { 161 return -1;//It's a data track 162 } 172 173 // PD: Don't return error when data track is found. 174 // if(trackInfo.ucTCInfo & 0x40) { 175 // return -1;//It's a data track 176 // } 177 163 178 *ulLeadOut=cdInfo.ulLeadOut; 164 179 return cdInfo.ucLastTrack-cdInfo.ucFirstTrack+1; … … 214 229 /* Returns sector info of track #numTrack */ 215 230 /* Starting with track 0 */ 216 ULONG os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack )231 ULONG os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack, BOOL *pflAudio) 217 232 { 218 233 ULONG ulParamLen; … … 250 265 if(rc) 251 266 break;//Error 267 268 *pflAudio=!trackInfo[0].track_type.type_of_track; 269 252 270 }else 253 271 return _CDCalculateSector((MSF*)&cdInfo.ulLeadOut);
Note:
See TracChangeset
for help on using the changeset viewer.