Changeset 5005 for trunk/src


Ignore:
Timestamp:
Jan 21, 2001, 2:36:43 PM (25 years ago)
Author:
sandervl
Message:

PD: CD Track fixes

Location:
trunk/src/winmm/mcicda
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/winmm/mcicda/cdrom.cpp

    r4965 r5005  
    216216        case 0:
    217217            SetLastError(ERROR_WRONG_DISK); 
    218             return -1;
     218            return 1;
    219219        default:
    220220            break;
     
    233233    ULONG               start, last_start = 0;
    234234    int         total_length = 0;
     235    BOOL        flAudioTrack;
    235236
    236237    if(!wcda->hfOS2Handle) {
     
    282283   
    283284    for (i = 0; i <= wcda->nTracks; i++) {
    284         if((start=os2CDQueryTrackStartSector(wcda->hfOS2Handle,i))==0)
     285        if((start=os2CDQueryTrackStartSector(wcda->hfOS2Handle,i,&flAudioTrack))==0)
    285286            {
    286287                WARN("error reading start sector for track %d\n", i+1);
     
    313314        }
    314315        //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;
    316320        //TRACE("track #%u flags=%02x\n", i + 1, wcda->lpbTrackFlags[i]);
    317321    }/* for */
     
    321325   
    322326    return TRUE;
    323    
    324     dprintf(("MCICDA-CDROM: CDAUDIO_GetTracksInfo not implemented.\n"));
    325     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
    326     return FALSE;
    327327}
    328328
  • trunk/src/winmm/mcicda/cdrom.h

    r4709 r5005  
    9898BOOL os2GetCDStatus(HFILE hfOS2Handle, ULONG  *ulStatus);
    9999BOOL os2GetCDAudioStatus(HFILE hfOS2Handle, USHORT  *usStatus);
    100 ULONG  os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack);
     100ULONG  os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack, BOOL *flAudio);
    101101BOOL os2CDEject(HFILE hfDrive);
    102102BOOL os2CDCloseTray(HFILE hfDrive);
  • trunk/src/winmm/mcicda/os2cdrom.cpp

    r4709 r5005  
    44 *
    55 * Copyright 2000    Chris Wohlgemuth
    6  *
     6 *           2001    Przemyslaw Dobrowolski
    77 * Project Odin Software License can be found in LICENSE.TXT
    88 *
     
    2727typedef struct
    2828{
     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
     40typedef struct
     41{
    2942        ULONG ulTrackAddress;
    30         UCHAR ucTCInfo;
     43        TRACKTYPE track_type;
    3144}CDTRACKINFO;
    3245
     
    157170        return 0;//Error
    158171    }
    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
    163178    *ulLeadOut=cdInfo.ulLeadOut;
    164179    return cdInfo.ucLastTrack-cdInfo.ucFirstTrack+1;
     
    214229/* Returns sector info of track #numTrack */
    215230/* Starting with track 0 */
    216 ULONG  os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack)
     231ULONG  os2CDQueryTrackStartSector( HFILE hfDrive, ULONG numTrack, BOOL *pflAudio)
    217232{       
    218233    ULONG ulParamLen;
     
    250265            if(rc)
    251266                break;//Error
     267
     268           *pflAudio=!trackInfo[0].track_type.type_of_track;
     269
    252270        }else
    253271            return _CDCalculateSector((MSF*)&cdInfo.ulLeadOut);
Note: See TracChangeset for help on using the changeset viewer.