Spec-Zone.ru › Python 2.7

cd — Доступ к CD-ROM на системах SGI

Устарело начиная с версии 2.6: Модуль cd был удалён в Python 3.

Этот модуль предоставляет интерфейс к библиотеке Silicon Graphics для работы с CD. Он доступен только на системах Silicon Graphics.

Способы работы библиотеки следующие. Программа открывает устройство CD-ROM с помощью open() и создаёт парсер для обработки данных с CD с помощью createparser(). Объект, возвращаемый open(), может использоваться для чтения данных с CD, а также для получения информации о состоянии устройства CD-ROM и информации о CD, такой как таблица содержания. Данные с CD передаются парсеру, который анализирует фреймы и вызывает любые функции обратного вызова, которые были добавлены ранее.

Аудио-CD разделён на треки или программы (эти термины используются взаимозаменяемо). Треки могут быть разделены на индексы. Аудио-CD содержит таблицу содержания, которая указывает начало треков на CD. Индекс 0 обычно является паузой перед началом трека. Начало трека, как указано в таблице содержания, обычно является началом индекса 1.

Позиции на CD могут быть представлены двумя способами. Либо номер фрейма, либо кортеж из трёх значений: минуты, секунды и фреймы. Большинство функций используют последнее представление. Позиции могут быть как относительно начала CD, так и относительно начала трека.

Модуль cd определяет следующие функции и константы:

cd.createparser()

Создаёт и возвращает неявный объект парсера. Методы объекта парсера описаны ниже.

cd.msftoframe(minutes, seconds, frames)

Преобразует тройку (minutes, seconds, frames), представляющую время в абсолютном коде времени, в соответствующий номер фрейма CD.

cd.open([device[, mode]])

Открывает устройство CD-ROM. Значение возврата — неявный объект плеера; методы объекта плеера описаны ниже. Устройство — это имя файла устройства SCSI, например '/dev/scsi/sc0d4l0', или None. Если опущено или None, выполняется поиск в инвентаре оборудования для обнаружения привода CD-ROM. Если параметр mode не опущен, он должен быть строкой 'r'.

Модуль определяет следующие переменные:

exception cd.error

Исключение, генерируемое при различных ошибках.

cd.DATASIZE

Размер одной порции аудиоданных фрейма. Это размер аудиоданных, передаваемых в функцию обратного вызова типа audio.

cd.BLOCKSIZE

Размер одного неинтерпретируемого фрейма аудиоданных.

Следующие переменные — это состояния, возвращаемые getstatus():

cd.READY

Привод готов к работе с загруженным аудио-CD.

cd.NODISC

В приводе нет загруженного CD.

cd.CDROM

В приводе загружен CD-ROM. Последующие операции воспроизведения или чтения вернут ошибки ввода/вывода.

cd.ERROR

Возникла ошибка при попытке чтения диска или его таблицы содержания.

cd.PLAYING

Привод находится в режиме плеера CD, воспроизводящего аудио-CD через его аудиоразъёмы.

cd.PAUSED

Привод находится в режиме слоя CD с приостановленным воспроизведением.

cd.STILL

Аналог PAUSED на более старых (не модели 3301) приводах Toshiba CD-ROM. Такие приводы никогда не поставлялись SGI.

cd.audio
cd.pnum
cd.index
cd.ptime
cd.atime
cd.catalog
cd.ident
cd.control

Целочисленные константы, описывающие различные типы функций обратного вызова парсера, которые могут быть установлены методом addcallback() объектов парсера CD (см. ниже).

1. Объекты плеера

Объекты плеера (возвращаемые open()) имеют следующие методы:

CD player.allowremoval()

Разблокирует кнопку выброса из привода CD-ROM, позволяя пользователю выбросить лоток, если нужно.

CD player.bestreadsize()

Возвращает наилучшее значение для параметра num_frames метода readda(). Наилучшее определяется как значение, позволяющее непрерывный поток данных с привода CD-ROM.

CD player.close()

Освобождает ресурсы, связанные с объектом плеера. После вызова close(), методы объекта больше не должны использоваться.

CD player.eject()

Выбрасывает лоток из привода CD-ROM.

CD player.getstatus()

Возвращает информацию о текущем состоянии привода CD-ROM. Возвращаемая информация — кортеж со следующими значениями: state, track, rtime, atime, ttime, first, last, scsi_audio, cur_block. rtime — время относительно начала текущего трека; atime — время относительно начала диска; ttime — общее время на диске. Более подробная информация о значении значений содержится в справке CDgetstatus(3dm). Значение state — одно из следующих: ERROR, NODISC, READY, PLAYING, PAUSED, STILL или CDROM.

CD player.gettrackinfo(track)

Возвращает информацию о заданном треке. Возвращаемая информация — кортеж из двух элементов: начальное время трека и продолжительность трека.

CD player.msftoblock(min, sec, frame)

Преобразует тройку «минуты, секунды, фреймы», представляющую время в абсолютном коде времени, в соответствующий логический номер блока для данного привода CD-ROM. Следует использовать msftoframe() вместо msftoblock() для сравнения времени. Логический номер блока отличается от номера фрейма смещением, необходимым для определённых приводов CD-ROM.

CD player.play(start, play)

Начинает воспроизведение аудио-CD в приводе CD-ROM с указанного трека. Аудиовыход появляется на наушниках и аудиоразъёмах привода CD-ROM (если они есть). Воспроизведение останавливается в конце диска. start — номер трека, с которого начать воспроизведение; если play равно 0, CD устанавливается в первоначальное приостановленное состояние. Затем можно использовать метод togglepause() для начала воспроизведения.

CD player.playabs(minutes, seconds, frames, play)

Как play(), за исключением того, что начало задаётся в минутах, секундах и фреймах вместо номера трека.

CD player.playtrack(start, play)

Как play(), за исключением того, что воспроизведение останавливается в конце трека.

CD player.playtrackabs(track, minutes, seconds, frames, play)

Как play(), за исключением того, что воспроизведение начинается в указанное абсолютное время и заканчивается в конце указанного трека.

CD player.preventremoval()

Заблокирует кнопку выброса из привода CD-ROM, препятствуя произвольному выбросу лотка пользователем.

CD player.readda(num_frames)

Читает указанное количество фреймов с аудио-CD, установленного в привод CD-ROM. Возвращаемое значение — строка, представляющая аудиофреймы. Эту строку можно без изменений передать в метод parseframe() объекта парсера.

CD player.seek(minutes, seconds, frames)

Устанавливает указатель, указывающий на начальную точку следующего чтения цифровых аудиоданных с CD-ROM. Указатель устанавливается в абсолютную позицию кода времени, заданную в минутах, секундах и фреймах. Возвращаемое значение — логический номер блока, на который установлен указатель.

CD player.seekblock(block)

Устанавливает указатель, указывающий на начальную точку следующего чтения цифровых аудиоданных с CD-ROM. Указатель устанавливается на указанный логический номер блока. Возвращаемое значение — логический номер блока, на который установлен указатель.

CD player.seektrack(track)

Устанавливает указатель, указывающий на начальную точку следующего чтения цифровых аудиоданных с CD-ROM. Указатель устанавливается на указанный трек. Возвращаемое значение — логический номер блока, на который установлен указатель.

CD player.stop()

Останавливает текущую операцию воспроизведения.

CD player.togglepause()

Приостанавливает CD, если он воспроизводится, и заставляет его воспроизводиться, если он приостановлен.

2. Объекты парсера

Объекты парсера (возвращаемые createparser()) имеют следующие методы:

CD parser.addcallback(type, func, arg)

Добавляет обратный вызов для анализатора. Анализатор имеет обратные вызовы для восьми различных типов данных в потоке данных цифрового аудио. Константы для этих типов определены на уровне модуля cd (см. выше). Обратный вызов вызывается следующим образом: func(arg, type, data), где arg — переданное пользователем значение, type — конкретный тип обратного вызова, а data — данные, возвращаемые для этого типа обратного вызова. Тип данных зависит от типа обратного вызова следующим образом:

Тип

Значение

audio

Строка, которую можно передать без изменений в al.writesamps().

pnum

Целое число, задающее номер программы (трека).

index

Целое число, задающее номер индекса.

ptime

Кортеж, состоящий из времени программы в минутах, секундах и кадрах.

atime

Кортеж, состоящий из абсолютного времени в минутах, секундах и кадрах.

catalog

Строка из 13 символов, задающая каталожный номер компакт-диска.

ident

Строка из 12 символов, задающая идентификатор ISRC записи. Строка состоит из двух символов — кода страны, трех символов — кода владельца, двух символов — года и пяти символов — серийного номера.

control

Целое число, задающее управляющие биты из данных подкода компакт-диска.

CD parser.deleteparser()

Удаляет анализатор и освобождает занимаемую им память. После этого вызова объект использовать нельзя. Этот вызов выполняется автоматически при удалении последней ссылки на объект.

CD parser.parseframe(frame)

Анализирует один или несколько кадров цифровых аудиоданных с компакт-диска, таких как возвращаемые readda(). Определяет, какие подкоды присутствуют в данных. Если эти подкоды изменились с момента последнего кадра, то parseframe() выполняет обратный вызов соответствующего типа, передавая ему данные подкода, найденные в кадре. В отличие от функции C, в этот метод можно передать более одного кадра цифровых аудиоданных.

CD parser.removecallback(type)

Удаляет обратный вызов для заданного типа type.

CD parser.resetparser()

Сбрасывает поля анализатора, используемые для отслеживания подкодов, в начальное состояние. resetparser() следует вызывать после смены диска.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/cd.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API