Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

Получение информации о звуковых каналах

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

// Код функции 4

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

#pragma pack(1)

typedef struct _ChanInfo

{

BYTEbFunctionCode;

BYTEbInpChannel0;

BYTEbVolControl0;

BYTEbInpChannel1;

BYTEbVolControl1;

BYTEbInpChannel2;

BYTEbVolControl2;

BYTEbInpChannel3;

BYTEbVolControl3;

} ChanInfo;

Поле

Описание

bFunctionCode

Код функции

bInpChannel0

Номер входного канала, присвоенного выходному каналу 0. По умолчанию равно 0

bVolControl0

Уровень громкости для канала 0. По умолчанию равно 0FFh

bInpChannel1

Номер входного канала, присвоенного выходному каналу 1. По умолчанию равно 1

bVolControl1

Уровень громкости для канала 1. По умолчанию равно0FFh

bInpChannel2

Номер входного канала, присвоенного выходному каналу 2. По умолчанию равно2

bVolControl2

Уровень громкости для канала 2. По умолчанию равно0FFh

bInpChannel3

Номер входного канала, присвоенного выходному каналу 3. По умолчанию равно3

bVolControl3

Уровень громкости для канала 3. По умолчанию равно0FFh

Чтение данных из устройства

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

// Код функции 5

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

#pragma pack(1)

typedef struct _DriveBytes

{

BYTEbFunctionCode;

BYTEbNumBytes;

BYTEbReadBuff[128];

} DriveBytes;

Поле

Описание

bFunctionCode

Код функции

bNumBytes

Количество байт, которые необходимо прочитать из устройства

bReadBuff

Буфер для чтения размером 128 байт. После выполнения команды в него записывается информация, которая зависит от типа устройства чтения CD-ROM

Определение состояния устройства

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

// Код функции 6

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

#pragma pack(1)

typedef struct _DeviceStatus

{

BYTEbFunctionCode;

DWORD dwDeviceParameters;

} DeviceStatus;

Поле

Описание

bFunctionCode

Код функции

dwDeviceParameters

32-разрядное слово состояния устройства

Описания отдельных бит слова состояния приведено ниже:

Бит

Описание

0

1 – устройство открыто, в него можно вставлять диск;

0 – устройство закрыто

1

0 – устройство заблокировано, из него нельзя извлечь диск;

1 – устройство разблокировано

2

0 – устройство может работать только в режиме Cooked Reading;

1 – дополнительно может использоваться режимRaw Reading

3

0 – устройстов может только читать компакт-диски;

1 – устройство может читать и записывать компакт-диски

4

0 – устройство может работать только с дорожками, содержащими данные:

1 – дополнительно устройство может проигрывать звуковые дорожки или дорожки с видео

5

0 – устройство не способно работать с чередованием данных;

1 – устройство работает с чередованием данных в стандарте ISO‑9660

6

Зарезервировано

7

0 – предварительная выборка не применяется;

1 – устройство способно выполнять запросы на предварительную выборку

8

0 – устройство не работает со звуковыми каналами;

1 – устройство может работать со звуковыми каналами

9

0 – устройство может работать в режиме адресации HSG;

1 – дополнительно можно использовать режим адресацииRedbook

10

Зарезервировано

11

0 – в устройстве находится компакт-диск;

1 – в устройстве нет компакт-диска

12

0 – устрйство не работает с подканалами R-W;

1 – указанные каналы используются

13-31

Зарезервировано и равно нулю

Немного о режимах Cooked и Raw.

По умолчанию устройство чтения CD-ROM работает в режимеCooked. Этот режим предполагает аппаратную обработку циклической контрольной суммы. Размер блока данных равен 2048 байт.

В режиме Raw драйвер возвращает 2352 байта данных, в которые входят заголовок блока данных и контрольная сумма.

Соседние файлы в папке несколько программ