Пример #1
0
int main()
{
  printf("testing 32-bit MSCDEX access...\n");
  if (cd_installed() == 0) {
    printf("MSCDEX not found.\n");
    return 1;
  }

  if (cd_getversion() < 0x020A) {
    printf("MSCDEX v2.10 required.\n");
    return 2;
  }

  char drbuf[26];
  cd_getdriveletters(drbuf);
  cd_driverinit(drbuf[0]);
  printf("CDROM is drive %c:\n", 'A' + drbuf[0]);
  printf("%d tracks.\n", cd_getlasttrack(drbuf[0]));
  printf("cd play status: %d\n", cd_isplayingaudio(drbuf[0]));

  long stats = cd_getstatus(drbuf[0]);
  printf("drive status: %08X\n", stats);

  if (stats & CDS_DRIVEOPEN)
    printf("drive is open\n");

  if (stats & CDS_DRIVEEMPTY)
    printf("drive is empty\n");

  printf("playing track...\n");
  cd_playtrack(drbuf[0], 2);
  printf("Bye!\n");
  cd_driverclose(drbuf[0]);
  return 0;
}
Пример #2
0
int AGSDOS::CDPlayerCommand(int cmdd, int datt) {
  if (cmdd==1)  // query if playing audio
    return cd_isplayingaudio(cddrive);
  else if (cmdd==6)
    cd_eject(cddrive);
  else if (cmdd==7)
    cd_uneject(cddrive);
  else if (cmdd==8)
    return numcddrives;
  else if (cmdd==9) {
    if ((datt<1) | (datt>numcddrives)) return 0;
    cddrive=cd_driveletters[datt-1];
    }
  else if ((cd_getstatus(cddrive) & (CDS_DRIVEOPEN | CDS_DRIVEEMPTY))!=0)
    return 0;
  else if (cmdd==2) { // play track
    cd_playtrack(cddrive,datt);
    need_to_stop_cd=1;
    }
  else if (cmdd==3) // stop music
    cd_stopmusic(cddrive);
  else if (cmdd==4) // resume music
    cd_resumemusic(cddrive);
  else if (cmdd==5)  // get num tracks
    return cd_getlasttrack(cddrive);
  else
    quit("unknown CD command");

  return 0;
}
Пример #3
0
int cd_isplayingaudio(int drivv)
{
  cd_getstatus(drivv);
  if (cd_lasterror & 0x0200) {
    return 1;                   // playing
  }
  return 0;                     // not playing
}