|
Обновите ArcaOS до уровня NeoWPS
- Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
- Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе
|
TITLE: Использование пульта
DATE: 2004-03-08 13:03:16
AUTHOR: Vladimir Solovyov
В статье рассказывается об
использовании пульта дистанционного управления
ТВ тюнера AVERMedia TVSudio mod.203
Идея использовать пульт
дистанционного управления (в дальнейшем ДУ)
появилась когда я увидел программу JTVRemote, которая лихо двигала
мышиным курсором по рабочему
столу Windows98. Тогда у меня взыграло: "Ну почему в винде есть, а в
оси нет."
Год назад в поле моего зрения попал проект
TVShow (на тот момент это была версия 0.42.)
В его составе есть программа TVSHOWRCD.EXE, которая узнает у драйвера
какая кнопка была нажата или отпущена и помещает в именованный канал (named pipe)
соответствующий код этой кнопки.
К TVShow прилагался небольшой пример использования данной
функциональности. (RemoteCmdTVSHOW.cmd)
Очень много OS/2 программ, в отличие от их windows аналогов, имеют
возможность управления через именованные каналы (named pipes).
Эту возможность я и решил использовать.
К примеру, mp3-плейер Z! имеет именованный канал \pipe\zmp3 и набор
команд : *next, *previous, *pause, *pause, *play, *vol+, *vol-, *mute
Я немножко подумал и в результате развил оригинальный скрипт, придав
ему большую функциональность. Скрипт писался для внутреннего
потребления - поэтому
внутри много мусора, да и написан он крайне неаккуратно - к
REXX'у я
обращаюсь раз в полгода. И каждый раз вынужден вспоминать всё заново.
Тем не менее, работоспособность скрипта меня устраивает.
Итак, список программ, которые управляются пультом дистанционного
управления через pipe:
Как всё это ставится
- Берем TVShow 0.42 (tvShow042.zip) или готовый
набор, который я собрал из TVShow remotecmd.zip.
- Распаковываем. Я положил его в C:\os2apps\tv
- В config.sys добавим одну строку: device=C:\os2apps\tv\warpdrvr.sys
Так загружается драйвер, с помощью которого TVShow работает
с тюнером. Здесь положено перезагрузиться, но это можно отложить и на потом.
- Все пути к управляемому софту можно прописать в
config.sys в переменную PATH. Часть из нужных программ я положил
в каталог из PATH. В моем случае это C:\SRV. Для другой части сделал небольшие cmd
следующего вида (video2.cmd):
C:
cd \os2apps\video
video2.exe %1 %2 %3 %4 %5
И тоже положил в C:\SRV.
- Еще нам понадобится программа GO. GO! v1.5 -
(c) 1993-95 by Carsten
Wimmer. Она позволяет получить список процессов и прерывать
указанные процессы по именам их исполняемых файлов.
- Для работы всей конструкции нужны следующие файлы из комплекта TVShow:
TVSHOWRCD.EXE |
демон, который и выдает
в именованный канал (pipe) коды клавиш |
MAPHYMEM.DLL |
библиотека для
TVSHOWRCD.EXE |
VIDEO.CFG |
файл
конфигурации TVShow, используется TVSHOWRCD.EXE. |
WARPDRVR.SYS |
драйвер ТВ тюнера |
- Сам скрипт
remotecmd.cmd, который надо положить либо в каталог к
TVShow, либо в отдельный каталог с этими файлами из комплекта
TVShow.
Теперь remotecmd.cmd можно запустить и посмотреть что получится.
Управление
Одновременно может быть запущено несколько программ, поэтому сначала
надо выбрать режим управления.
Кнопки пульта, использующиеся для выбора режима:
Video |
переключается в режим работы с видеоплеером |
Audio |
переключается в режим работы с аудиоплеером |
TV |
переключается в режим работы с ТВ |
FM |
переключается в режим работы с FM |
CD |
переключается в режим работы с CD плеером |
Teletext |
переключается в режим работы управлением OS/2 |
После выбора режима скрипт определяет запущена ли уже программа или
нет. Если она запущена, тогда нажатия кнопок управления будут
преобразовываться в команды программы, которая работает в данном режиме.
Кнопкой Power можно включить или выключить программу,
ответственную за выбранный режим работы. Для запуска используются наименования
исполняемых файлов, лежащие в пути поиска.
Наименования и пути для запуска программ нужно поправлять
непосредственно в remotecmd.cmd.
Кнопки управления программами
MP3 плейер Z!
Channel+, 8, 6 |
следующая песня |
Channel-, 2, 4 |
предыдущая песня |
PAUSE |
пауза |
STOP |
остановить воспроизвдение |
PLAY |
начать воспроизведение |
VOLUME+ |
увеличить громкость |
VOLUME- |
уменьшить громкость |
MUTE |
выключить/включить звук |
1 |
промотать 10 песен назад |
3 |
промотать 10 песен вперед |
Управление OS/2 (пока что всё управление OS/2 сводится к выключению компьютера c помощью APM.EXE)
Power |
выключить компьютер |
Power |
прервать выключение компьютера, если оно запущено. |
TVShow
Channel+ |
следующий канал |
Channel- |
предыдущий канал |
1..9 |
номер канала |
MUTE |
выключить/включить звук |
WarpVision GUI
Channel+ |
следующий элемент плейлиста |
Channel |
предыдущая элемент плейлиста |
PAUSE |
пауза |
STOP |
остановить воспроизвдение |
PLAY |
начать воспроизведение |
VOLUME+ |
увеличить громкость |
VOLUME |
уменьшить громкость |
MUTE |
выключить/включить звук |
FULL SCREEN |
переключиться в полный экран и обратно |
1 |
назад на 5 минут |
2 |
вперед на 10 минут |
3 |
вперед на 5 минут |
4 |
назад на 1 минуту |
6 |
вперед на 1 минуту |
7 |
назад на 10 секунд |
8 |
назад на 10 минут |
9 |
вперед на 10 секунд |
CoolFM 2.x
Channel+, 8, 6 |
следующая станция |
Channel-, 2, 4 |
предыдущая станция |
MUTE |
выключить/включить звук |
RECORD |
включить/выключить запись |
Simple CD player
Channel+, 8, 6 |
следующая песня |
Channel, 2, 4 |
предыдущая песня |
PAUSE |
пауза |
STOP |
остановить воспроизвдение |
PLAY |
начать воспроизведение |
MUTE |
выключить/включить звук |
1 |
промотать 10 песен назад |
3 |
промотать 10 песен вперед |
Особенности запуска программ
В общем особенность пока одна, и касается она mp3 плейера Z!,
который запускается с заранее подготовленным списком воспроизведения.
Делается список всех файлов MP3 из всех подкаталогов КаталогMP3:
dir КаталогMP3 *.mp3 /s /f > ВременныйКаталог\list.pl
- ВременныйКаталог - это каталог, который определяется переменной TEMP.
- КаталогMP3 - берется из файла mp3path, расположенного в одном
каталоге с remotecmd.cmd. (За поиск и разбор написанного в mp3path отвечает
процедура GetMp3Path.
Файл mp3path должен содержать полный путь к каталогу с MP3, например: D:\MUSIC.
Если файла mp3path
нет, тогда Z! ничего играть не будет!!!
Внутренности REMOTECMD.CMD
Внутри страшно :)
В бесконечном цикле слушается
\pipe\tvshowremote. Из него извлекаются
коды нажатых клавиш. Здесь есть один нюанс - в
пайпе оказываются еще и коды отпущенных клавиш. Их проходится отсекать,
чтобы не мешали.
Список кодов клавиш можно посмотреть здесь.
Потом происходит анализ нажатых кнопок. Если нажата одна из кнопок
смены режима, тогда закрывается pipe
предыдущей программы и открывается новый. При нажатии кнопок управления
программами происходит вызов конкретной
процедуры, отвечаюшей за управление программой.
Каждая процедура управления содержит в начале две строки:
ControlList.1 = 'cdp.exe'
ControlList.2 = 'go -ka cdp.exe >nul'
Первая строка - это строка запуска приложения, вторая строка - это
строка останова приложения. В данном примере показаны строки из
процедуры управления CD-плейером. Вот в эти строки и надо вписывать
вызовы программ.
Комментарии: XEPOMAHT 2004-03-09 00:45:58 | "TVShow by Alex Strelnikov"
Я конечно Лелика уважаю, но автор не он, а Александр Черкаев. | XEPOMAHT 2004-03-09 00:47:40 | А поддерживаются ли LIRC-девайсы, которые описаны на [url] ?
| Vladimir Solovyov 2004-03-09 09:22:45 | Посыпаю голову тонером, я ошибся
2 e-co: Исправь пожалуйста | Vladimir Solovyov 2004-03-09 09:26:47 | Насчет LIRC. Если будет демон, который выдает в pipe коды кнопок, то почему бы и нет.
И это же REXX - можно доделать подо что угодно. | bz 2004-03-10 13:15:41 | 2XEPOMAHT: вас это абстрактно интересует? | XEPOMAHT 2004-03-11 10:16:42 | bz: не только. Поддержку хотелось бы иметь... | Vladimir Solovyov 2004-03-11 10:52:36 | 2 ХЕРОМАНТ: С тебя слушалка для Com-порта, которая вываливает совместимые с AVERMedia коды кнопок.
Список кодов клавиш можно посмотреть [url] | Vladimir Solovyov 2004-03-11 10:53:34 | 2bz: а своей софтинкой с общественностью не поделишься ? :) | bz 2004-03-12 12:35:20 | не, не поделюсь. и не из-за жадности, а потому что оно нетестированное нигде, кроме как у меня самого. вот, может, бета-тестера найду... | Vladimir Solovyov 2004-03-13 10:29:34 | а обучить ее чтению из pipe не хочешь? Тогда была бы универсальная штука - для тюнеров и LIRC устройств | bz 2004-03-15 14:02:42 | У меня изначально было две разных штуки -- одна кнопки распознаёт и пишет их в pipe, другая из pipe читает и всякие действия (определённые в своих конфигах) выполняет. Вполне себе универсально. Особенно при наличии rexx-хуков. | Vladimir Solovyov 2004-03-16 10:46:18 | ну если оно умеет читать из pipe, тогда можно обучить и TVShow понимать
А тогда и я могу бетатестером быть | UY 2004-11-17 10:49:22 | Can you give me software to view a file "dll"
I'm waiting for you. Thanks a lot! |
Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|
Писать программы для eComStation - это выгодно: a) система имеет более компактный API, который хорошо продуман и эффективен, b) Рынок не такой бесконечный, как у Windows. Все пользователи eComStation узнают про ваш продукт, c) Один разработчик значительно влияет на всю ОС. |
|
|
|
Готовая eComStation на SSD диске
Последний активный опрос: Какая высота барьера RPM?
[Google]
|
IBM OS/2 Warp
|