Текущее время: 23 окт 2020, 13:51 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Плагин "Любимые каналы"

Начать новую темуОтветить на тему Страница 1 из 2 [ Сообщений: 16 ] На страницу   1, 2  След.
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 01 авг 2007, 15:18. Заголовок сообщения:  Плагин "Любимые каналы"
Зарегистрирован:
    01 авг 2007, 15:06
Сообщения: 22
Всем привет!
Предлагаю Вашему вниманию собственный плагин "Любимые каналы".
Если Вам не хватает кнопки "Recall" и Вы любите смотреть несколько каналов ТВ одновременно, то этот плагин для Вас!
Используя этот плагин, Вы можете быстро переключаться между понравившимися каналами. Понравившийся канал выбирается одним нажатием кнопки на пульте ДУ.

http://apf72.narod.ru/BPP_LikeChannel.rar

P.S. Прочитайте readme.txt
Профиль WWW 
Сообщение Добавлено: 01 авг 2007, 19:22. Заголовок сообщения:  Re: плагин "Любимые каналы"
Эксперт
Зарегистрирован:
    02 фев 2006, 07:40
Сообщения: 276
Откуда: Екатеринбург
Вот и первый сторонний плагин появился :) Ура, товарищи!

Но есть некоторые проблемы:
1. Переключение каналов плагинов происходит с некоторой (хотя и маленькой) задержкой. Видимо связано с частотой опроса ПДУ.

2. Очень не хватает OSD индикации режима работы "все каналы"/"любимые каналы". Хотя я понимаю, что это не так легко...

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

4. Не хватает управления с клавиатуры.

5. Будет ли плагин под вистой сохранять настройки в корректном месте?

6. (уже к разработчикам BTV). Из-за ограничений плагинной системы, этот плагин нельзя (а хотелось бы) использовать в режиме FM.
Профиль 
Сообщение Добавлено: 02 авг 2007, 09:10. Заголовок сообщения: 
Эксперт
Аватара пользователя
Зарегистрирован:
    02 апр 2006, 21:37
Сообщения: 1329
При клике в незаполненном окне со списком каналов выскакивает "Access violation ... ".
Behold TV M6 Extra
Behold TV H8
Behold TV T8
Профиль 
Сообщение Добавлено: 02 авг 2007, 16:28. Заголовок сообщения:  BPP_LikeChannels v1.01
Зарегистрирован:
    01 авг 2007, 15:06
Сообщения: 22
писал(а):
1. Переключение каналов плагинов происходит с некоторой (хотя и маленькой) задержкой. Видимо связано с частотой опроса ПДУ.

Странно, сколько я не пытался, получить задержку так и не смог, у меня переключение происходит с нормальной скоростью. Замечу только, что канал переключается при отпускании кнопки, поэтому зажать кнопку и пролистать все каналы не получится...

Цитата:
2. Очень не хватает OSD индикации режима работы "все каналы"/"любимые каналы". Хотя я понимаю, что это не так легко...

Это, действительно, не так легко...
Раз так, я хотел бы попросить разработчиков "Behold TV" поделится алгоритмом вывода текста на экран, можно даже менее функциональным, чем у "BPP_OSDClock", он, действительно, помог бы. Если ответ "Нет", тогда предложу добавить API функцию типа "Вывести строку", ведь программа "Behold TV" выводит кучу информации, так зачем же заставлять разработчиков плагинов "изобретать велосипед", почему бы не дать плагинам выводить свою информацию, используя "Behold TV"?

Цитата:
3. Каналы стоит запоминать не по порядковому номеру, а по уникальному индексу. Иначе получается, что если после добавления каналов в список, поменять их порядок в настройках BTV, то добавленные каналы изменятся. Иными словами, плагином запоминается не канал, а его номер.

Пример. Мои любимые каналы №5 и №10, сйчас включен канал №7, плагин прочитал из файла "любимые каналы" как "127884474753125000" и "127884472546718750" соответственно. Я хочу переключить любимый канал и жму кнопку. Плагин получает текущий канал как "127884475750468750". Задача для плагина: угадать какой же канал сейчас включен и какой же включить. Так что без номеров каналов не обойтись, другое дело - комбинировать использование номеров и индексов, но ИМХО цель не оправдывает средства. Например, я за 1,5 года использования тюнера не менял порядок каналов ни разу.

Цитата:
4. Не хватает управления с клавиатуры.

Добавлены горячие клавиши... даже регулирование громкости. Ссылка ниже.

Цитата:
5. Будет ли плагин под вистой сохранять настройки в корректном месте?

Незнаю! Могу переадресовать вопрос к авторам примера плагина "BPP_Inverse": если пример будет, что и "BPP_LikeChannel" будет, я не утруждал себя переделыванием стандартных функций.
Сам смею предположить, что будет.

писал(а):
При клике в незаполненном окне со списком каналов выскакивает "Access violation ... ".

Исправленно.

v1.01 http://apf72.narod.ru/bpp_likechannel101.rar
Профиль WWW 
Сообщение Добавлено: 02 авг 2007, 18:12. Заголовок сообщения:  Re: BPP_LikeChannels v1.01
Эксперт
Зарегистрирован:
    02 фев 2006, 07:40
Сообщения: 276
Откуда: Екатеринбург
писал(а):
Замечу только, что канал переключается при отпускании кнопки, поэтому зажать кнопку и пролистать все каналы не получится...

Видимо это и вызывает у меня ощущение задержки переключения. Нельзя ли это исправить?

писал(а):
Так что без номеров каналов не обойтись

Что-то я пример не понял.
Чем отличается номер канала от индекса? Находясь на 7м канале, Вы жмете "след. любимый канал". Плагин смотрит - ага, любимые каналы - это индексы XXX и YYY, им соответствуют номера 5 и 10. 10 - следующий после 7 любимый канал, значит включаем его.
В настройках нужно хранить индексы, преобразовывать лишь в момент переключения. Ведь API для этого есть.

писал(а):
Например, я за 1,5 года использования тюнера не менял порядок каналов ни разу.

Да, с этим не поспоришь. Я тоже не менял ;-). Но зачем-то же разработчики придумали индексы...

писал(а):
Добавлены горячие клавиши... даже регулирование громкости. Ссылка ниже.

Спасибо. Там тока опечатка есть - Insetr.

писал(а):
Незнаю! Могу переадресовать вопрос к авторам примера плагина "BPP_Inverse": если пример будет, что и "BPP_LikeChannel" будет, я не утруждал себя переделыванием стандартных функций.
Сам смею предположить, что будет.

Неа, не будет. BPP_Inverse (тот, который в SDK) сохраняет настройки все время рядом с собой.
А в висте надо сохранять черте-куда.
Но разработчики видимо стремятся сохранить PluginAPI неизменным, поэтому каждый плагин должен сам разбираться куда чего сохранять.
Если я не прав, то пусть разработчики меня поправят.

Просьба к разработчикам - планируется ли вообще расширение плагинной системы?
Профиль 
Сообщение Добавлено: 02 авг 2007, 18:52. Заголовок сообщения:  Re: BPP_LikeChannels v1.01
Зарегистрирован:
    01 авг 2007, 15:06
Сообщения: 22
писал(а):
Видимо это и вызывает у меня ощущение задержки переключения. Нельзя ли это исправить?

Я, конечно, подумаю над этим, но стоит ли оно того?

писал(а):
Что-то я пример не понял. Чем отличается номер канала от индекса? Находясь на 7м канале, Вы жмете "след. любимый канал". Плагин смотрит - ага, любимые каналы - это индексы XXX и YYY, им соответствуют номера 5 и 10. 10 - следующий после 7 любимый канал, значит включаем его.

"им соответствуют номера 5 и 10" - любимые каналы в данный момент - это динамический массив, поэтому при каждом переключении придется получать номер каждого канала массива используя API, а уже потом искать между какими находится текущий. Производительность падает :) А если серьезно, то производительность при нынешних скоростях не проблема, но я просто считаю что лишних действий программа выполнять не должа.

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

Эта фраза натолкнула на мысль: можно в настройках хранить индексы и преобразовывать их в номера каналов при инициализации, но, опять же стоит ли?

писал(а):
А в висте надо сохранять черте-куда.

Могу в реестр настройки перенести, надеюсь в висте структура реестра не изменилась?
Профиль WWW 
Сообщение Добавлено: 03 авг 2007, 12:34. Заголовок сообщения:  Re: BPP_LikeChannels v1.01
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:45
Сообщения: 616
писал(а):
Раз так, я хотел бы попросить разработчиков "Behold TV" поделится алгоритмом вывода текста на экран, можно даже менее функциональным, чем у "BPP_OSDClock", он, действительно, помог бы. Если ответ "Нет", тогда предложу добавить API функцию типа "Вывести строку", ведь программа "Behold TV" выводит кучу информации, так зачем же заставлять разработчиков плагинов "изобретать велосипед", почему бы не дать плагинам выводить свою информацию, используя "Behold TV"?

Из-за полудюжины способов вывода видео на экран, наработанных Майкрософт за многие годы, штатный вывод OSD в программе достаточно сложен, претерпевает постоянные изменения от версии к версии операционной системы и плохо поддаётся структурированию. Встроить его в API проблематично. Поэтому плагины используют свои механизмы наложения текста и графики непосредственно на изображение, что неплохо сочетается с основной идеей обработки видеоданных и полностью отвязано от Microsoft API. В простейшем случае текст и графика выводятся копированием заполненного GDI битмапа с преобразованием его из формата RGB в текущий формат кадра YUY2 или RGB24. Наложение с прозрачностью, альфа-каналом, цветовым ключом и пр. в форматах YUY2 и RGB24 – отдельная тема. Мы посмотрим, каким образом можно будет интегрировать имеющиеся для этого функции в программу и вынести их в API.

писал(а):
Могу переадресовать вопрос к авторам примера плагина "BPP_Inverse": если пример будет, что и "BPP_LikeChannel" будет, я не утруждал себя переделыванием стандартных функций.

Приложение хранит признак разделения пользовательских настроек в ключе "StoreInUsersFolder" раздела HKEY_LOCAL_MACHINE\SOFTWARE\BeholdTV реестра. Можно ориентироваться на этот флаг, можно нет, но Vista в любом случае не даст сохранить файл в директории с программой если та запущена на общих правах. Только в пользовательской директории, путь к которой можно получить с помощью функции SHGetSpecialFolderPath( ... ) с флагом CSIDL_APPDATA. ПО BeholdTV создаёт там поддиректорию ..\BeholdTV\, где и хранит свои настройки. Настройки плагинов могут храниться в поддиректории ..\BeholdTV\Plugins\. Если таковой нет, её надо создать. Это рекомендации, а не требования. Можете хранить свои настройки где Вам удобно.

писал(а):
Но разработчики видимо стремятся сохранить PluginAPI неизменным, поэтому каждый плагин должен сам разбираться куда чего сохранять.
Если я не прав, то пусть разработчики меня поправят..

То, каким образом, где и в каком виде (бинарном, текстовом и пр.) сохранять настройки своего плагина – личное дело каждого. Сильно упростить этот процесс не получится. Включение процедур работы с ini-файлами в PluginAPI сведётся к простому дублированию элементарных WinAPI функций.
Профиль 
Сообщение Добавлено: 03 авг 2007, 13:21. Заголовок сообщения:  Re: BPP_LikeChannels v1.01
Эксперт
Зарегистрирован:
    02 фев 2006, 07:40
Сообщения: 276
Откуда: Екатеринбург
писал(а):
Из-за полудюжины способов вывода видео на экран, наработанных Майкрософт за многие годы, штатный вывод OSD в программе достаточно сложен, претерпевает постоянные изменения от версии к версии операционной системы и плохо поддаётся структурированию. Встроить его в API проблематично. Поэтому плагины используют свои механизмы наложения текста и графики непосредственно на изображение, что неплохо сочетается с основной идеей обработки видеоданных и полностью отвязано от Microsoft API. В простейшем случае текст и графика выводятся копированием заполненного GDI битмапа с преобразованием его из формата RGB в текущий формат кадра YUY2 или RGB24. Наложение с прозрачностью, альфа-каналом, цветовым ключом и пр. в форматах YUY2 и RGB24 – отдельная тема. Мы посмотрим, каким образом можно будет интегрировать имеющиеся для этого функции в программу и вынести их в API.

Вот как раз и хочется чтобы PluginAPI изолировало плагины от всех этих бед. То есть, плагин вызывал бы функцию ShowOSDText или ShowOSDBitmap и сообщал, что (какой текст или битмап) он хочет вывести,где, и в течение какого времени. А уж задача BTV разобратся, как это вывести на видеоэкран.

писал(а):
То, каким образом, где и в каком виде (бинарном, текстовом и пр.) сохранять настройки своего плагина – личное дело каждого. Сильно упростить этот процесс не получится. Включение процедур работы с ini-файлами в PluginAPI сведётся к простому дублированию элементарных WinAPI функций.

Достаточно ввести функцию, которая бы возвращала предпочтительный путь к настройкам - C:\Program Files\BeholdTV\Plugins или C:\Docs&sets\user\... или еще где. Тогда плагину не надо заботится ни о чем, ни о каких StoreInUsersFolder и вистах. Получил папку - сохраняй в ней файл со своим именем. Не надо дублировать вызов функций WritePrivateProfile*
Профиль 
Сообщение Добавлено: 06 авг 2007, 21:36. Заголовок сообщения: 
Зарегистрирован:
    23 июл 2007, 15:48
Сообщения: 6
Здравствуйте,

В windows с английским UI окно конфигурации плагина неправильно выводит русский текст, вместо букв ??????

Все остальные плагины отображаются без проблем. Хочу отметить, что в самом Behold TV язык выбран анлийский, но плагины видимо только на русском, и все окна конфигурации на русском.

моя система:
Windows 2003 Advanced Server SP2
Russian MUI
Выбран английский пользовательский интерфейс
Выбран русский язык по умолчанию для программ не использующих Unicode

С уважением,
Филипп
Профиль 
Сообщение Добавлено: 06 авг 2007, 21:48. Заголовок сообщения: 
Зарегистрирован:
    23 июл 2007, 15:48
Сообщения: 6
Заметил что слова "Только любимые" и "Нажмите кнопку на пульте" отображаются нормально
Профиль 
Сообщение Добавлено: 15 авг 2007, 02:27. Заголовок сообщения:  1.02 beta
Зарегистрирован:
    01 авг 2007, 15:06
Сообщения: 22
Новая версия: http://apf72.narod.ru/bpp_likechannel102beta.rar

Что нового: Добавлена индикация OSD "Все каналы"/"Любимые каналы", "Добавлен", "Удален".

Почему beta: Индикация добавленна только для режима YUY2. В то же время, проверка текущего режима не выполняется, следовательно, при RGB24, вместо требуемых надписей будет не то, что требуется.

Пара вопросов к Support:
1)Когда используется режим RGB24?
2)Разрешит ли виста разместить мои настройки в реестре, скажем в HKEY_CURRENT_USER\Software\APf\LikeChannel ?

писал(а):
В windows с английским UI окно конфигурации плагина неправильно выводит русский текст, вместо букв ??????

Проверь новую версию.
Профиль WWW 
Сообщение Добавлено: 15 авг 2007, 15:56. Заголовок сообщения:  Re: 1.02 beta
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:45
Сообщения: 616
писал(а):
1)Когда используется режим RGB24?

1. При выводе видео в первичную поверхность (настройки "Видео" тюнера).
2. При записи AVI/ASF, когда в настройках формата выбирается RGB24.

Цитата:
2)Разрешит ли виста разместить мои настройки в реестре, скажем в HKEY_CURRENT_USER\Software\APf\LikeChannel ?

Теоретически никаких ограничений на запись в HKEY_CURRENT_USER нет.
Профиль 
Сообщение Добавлено: 18 авг 2007, 17:06. Заголовок сообщения:  Re: 1.02 beta
Зарегистрирован:
    23 июл 2007, 15:48
Сообщения: 6
писал(а):
Проверь новую версию.

В этой версии русский текс отображется правильно, спасибо!
Профиль 
Сообщение Добавлено: 20 авг 2007, 01:51. Заголовок сообщения:  1.03
Зарегистрирован:
    01 авг 2007, 15:06
Сообщения: 22
Новая версия 1.03
http://apf72.narod.ru/BPP_LikeChannel.rar

+ Добавлена индикация OSD номеров «любимых» каналов при переключении или при добавлении/удалении
+ Добавлена индикация OSD для режима RGB24
+ Добавлена возможность выбора шрифта для индикации
Профиль WWW 
Сообщение Добавлено: 21 авг 2007, 06:37. Заголовок сообщения:  1.04
Зарегистрирован:
    01 авг 2007, 15:06
Сообщения: 22
Версия 1.04
http://apf72.narod.ru/BPP_LikeChannel.rar

+ Значительно увеличено качество OSD в режиме YUY2
+ Настройки перенесены в реестр
Профиль WWW 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 2  [ Сообщений: 16 ]  На страницу   1, 2  След.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: