Текущее время: 28 мар 2024, 15:11 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Обратная связь через Sendmessage

Начать новую темуОтветить на тему Страница 1 из 1 [ Сообщений: 8 ]
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 16 авг 2009, 14:24. Заголовок сообщения:  Обратная связь через Sendmessage
Зарегистрирован:
    16 авг 2009, 12:07
Сообщения: 4
Через сообщения windows (Sendmessage/Postmessage) предоставляется довольно развлетленное управление Behold TV. Но вот про текущее состояние, кроме уровня громкости и номера ПО, не удастся узнать ничего. Странно... Получается игра в одни ворота, пнул мяч, а попадет он или нет и вообще что с ним дальше - х.з.

Возьмем запись. Для этого есть (отдельно для аудио и видео): триггеры запустить-остановить и пауза-продолжить, команды запустить и остановить. Как легко догадаться состояние триггеров во внешней программе (внешнем управлении) может легко поменяться местами, т.е. вместо останова пойдет запись и наоборот. Это может произойти например при внешнем вмешательстве (нажатии соотв. кнопок в окне Behold) или в силу внутренних причин (останов (сбой) записи, но управляющая программа по-прежнему будет считать что запись ведется, а вторичный посыл тригера, с точки зрения внешнего управляния, для останова, напротив, начнет ее).

Есть еще замечания: команда "остановить запись" обрабатывается всегда, даже при просмотре происходит переинициализация. Сам Behold TV "спасается" от этого только с помощью disable стопа.

Итого, кроме "защиты от дурака", для адекватного контроля над тюнером просто необходима обратная связь.

для этого требуется знать:
1) текущий канал (необходимость этого в форуме уже упоминали), информация о нем (название, частота и т.д.)
2) источник (Tuner, FM, VHS, S-VHS)
3) текущее состояние (просмотр, запись, таймшифт)
4) если запись то что: аудио, видео, серия снимков
5) информация о записи (статистика)
6) общее кол-во каналов

Добавление обработки запроса - пара строчек, странно что это не было сделано ранее. За образцами далеко ходить не надо - SDK Winamp начиная с 2.xx. По аналогии к примеру можно ввести:

WMBH_GETSTATUS возвращать 0 если просмотр, 1 - таймшифт, 2 - запись;
WMBH_GETSOURCE 0 - Tuner, 1 - FM, 2 - VHS, 3 - S-VHS;
WMBH_GETVIDEORECORD (WMBH_GETAUDIORECORD) возвращать 0 - если не идет запись видео (аудио), 1 - пауза записи, 2 - запись;
WMBH_GETCHANNELNUM, WMBH_GETCHANNELFREQ, WMBH_GETCHANNELNAME и т.д.

P.S. правда с возвратом pointer строк (название канала) например в jsript, vbscript и некоторых других - траблы (выше идет речь именно про управление сторонними программами на скриптах, если писать полноценное приложение, то часть, но не все! вопросов естественно снимается), но все равно можно передать строку таким образом:
SendMessage (hBhWnd, WM_BHCMD, WMBH_GETCHANNELNAME, param)
где param=-1 - возвращает ссылку на строку как обычно
param=0 - возвращает длину строки
param=1,2... и т.д. - соответствующий (первый, второй и т.д.) символ строки (таким образом можно последовательно передать строку известной длины в виде массива)

P.P.S. Перечитал. Много я запросил... :roll: но это необходимый полноценный минимум для управления. Может что-то уже введено, но не отражено в API, можете огласить?

P.P.P.S. да еще! по нажатию Enter вызывается видеомикшер в OSD, триггер WMBH_SELVOLMODE - это "старый" вариант, новый вариант в месседж известен?


(пользую Behold TV X7 с версией btv 5.07)
Профиль 
Сообщение Добавлено: 17 авг 2009, 11:00. Заголовок сообщения:  Re: Обратная связь через Sendmessage
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:45
Сообщения: 616
писал(а):
P.P.S. Перечитал. Много я запросил... :roll:

Да нет, в самый раз. В планах было расширить список WM_-сообщений командами получения информации о тюнере. Если будут какие-либо дополнительные пожелания на этот счёт, излагайте их в этой теме.
Профиль 
Сообщение Добавлено: 18 авг 2009, 09:06. Заголовок сообщения: 
Эксперт
Аватара пользователя
Зарегистрирован:
    23 мар 2007, 14:32
Сообщения: 4034
Откуда: РФ, ДНР, Донецк
Вот тут мои пожелания на сей счет: http://www.beholder.ru/bb/viewtopic.php?t=7612

Спасибо.
Behold TV 609FM, Behold TV X7
Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB.
Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
Профиль 
Сообщение Добавлено: 20 авг 2009, 12:34. Заголовок сообщения:  Re: Обратная связь через Sendmessage
Зарегистрирован:
    16 авг 2009, 12:07
Сообщения: 4
Добавить SET & GET "Использовать пульт ДУ" (для btv\Настройки\Пульт ДУ\Общие установки). Позволит использовать/исключать встроенное управление btv, иначе приходится галку выключать (да так и оставлять), чтобы не было дубляжа команд пульта и соответственно вводить доп управление для btv в стороннем ПО.
Профиль 
Сообщение Добавлено: 31 авг 2009, 11:31. Заголовок сообщения: 
Эксперт
Аватара пользователя
Зарегистрирован:
    23 мар 2007, 14:32
Сообщения: 4034
Откуда: РФ, ДНР, Донецк
Еще хотелось бы иметь средства управления списком плагинов. Хотя бы на уровне добавить/удалить плагин.
Добавлять плагин желательно из любого каталога, в смысле что-то типа addPlugin(char *pluginDllPath), а функция сама копирует эту dll куда надо и регистрирует ее в btv. А юзеру останется только самому настроить плагин.
Иначе тяжело - в xp/2003 путь один, в висте/2008 другой и т.д. В x64 свои прибамбасы - типа "C:\Program Files x86".
Behold TV 609FM, Behold TV X7
Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB.
Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
Профиль 
Сообщение Добавлено: 15 сен 2009, 21:31. Заголовок сообщения: 
Зарегистрирован:
    16 апр 2008, 22:22
Сообщения: 611
И от себя добавлю.
Хорошо бы привести команды к единообразию.
Сейчас, для различных функций тюнера существуют команды-триггеры типа toggle, и детерминированные команды типа set. Причем ,для одних функций есть и то и другое, для других - что-то одно.
Хорошо, если бы была единая команда для определенной функции (например WMBH_RECV), поведение которой определялось бы параметром lparam. К примеру: 0 - выкл, 1 - вкл, -1 - toggle.
Профиль 
Сообщение Добавлено: 06 окт 2009, 10:21. Заголовок сообщения: 
Эксперт
Аватара пользователя
Зарегистрирован:
    23 мар 2007, 14:32
Сообщения: 4034
Откуда: РФ, ДНР, Донецк
И какие-нибудь средства определить местонахождение программы btv.
Сейчас приходится сканировать ветку Uninstall (что почему-то не срабатывает в x64), искать и сканировать ярлыки Пуск->программы и пр. шаманство.
Behold TV 609FM, Behold TV X7
Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB.
Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
Профиль 
Сообщение Добавлено: 14 май 2010, 09:59. Заголовок сообщения: 
Эксперт
Аватара пользователя
Зарегистрирован:
    23 мар 2007, 14:32
Сообщения: 4034
Откуда: РФ, ДНР, Донецк
Еще пожелание:

Дайте какой-то API для получения информации о текущем канале.
Сейчас я получаю это из специального плагина, но в DVB и при записи аппаратным кодировщиком плагины не подключаются и получить эту информацию вообще невозможно.

Спасибо.
Behold TV 609FM, Behold TV X7
Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB.
Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 1  [ Сообщений: 8 ]  
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: