Аппаратное обеспечение персонального компьютера



           

Программа CDPLAY - часть 3


   

    // Сохраняем номер первого такого устройства

    nCDStartUnit = rg.x.cx;

    // Определяем и отображаем вресию MSCDEX

    rg.x.ax = 0x150c;

    int86(0x2f, &rg, &rg);

    printf("MSCDEX version: %d.%d\n", rg.h.bh, rg.h.bl);

    // Отображаем количество найденных устройств чтения

    // CD-ROM и номер первого устройства

    printf("Found %d CD Unit, start unit: %c\n",

      nCDUnits, nCDStartUnit + 'A');

  }

  // Получаем массив номеров устройств чтения CD-ROM

  GetCDLetters(bLetters);

 

  // Отображаем обозначения всех устройств CD-ROM

  printf("CD-ROM letters: ");

  for(i = 0; i < nCDUnits; i++)

  {

    printf("%c ", bLetters[i] + 'A'); 

  }

  printf("\n");

  // Открываем устройство

  iStatus = DeviceOpen(bLetters[0]);

  if(iStatus & 0x8000)

  {

    printf("DeviceOpen status: %04.4X\n", iStatus);

    return -1;

  }

  // Запускаем проигрывание

  iStatus =

    PlayAudioTrack(dwStartTrack, 0xffffffff, bLetters[0]);

  if(iStatus & 0x8000)

  {

    printf("PlayAudioTrack status: %04.4X\n", iStatus);

    return -1;

  }

  printf("Started. Press any key to stop and eject CD\n");

 

  // Ожидаем, пока пользователь не нажмет клавишу

  getch();

  // Останавливаем проигрывание

  iStatus = StopAudio(bLetters[0]);

  if(iStatus & 0x8000)

  {

    printf("StopAudio status: %04.4X\n", iStatus);

    return -1;

  }

  // Извлекаем диск

  iStatus = EjectCD(bLetters[0]);

  if(iStatus & 0x8000)

  {

    printf("EjectCD status: %04.4X\n", iStatus);

    return -1;

  }

  // Закрываем устройство

  iStatus = DeviceClose(bLetters[0]);

  if(iStatus & 0x8000)

  {

    printf("DeviceClose status: %04.4X\n", iStatus);

    return -1;

  }

  return 0;

}

// ---------------------------------------------------

// PlayAudioTrack




Содержание  Назад  Вперед