Задался целью сделать маленьку Си-программку для прослушивания fm-радиостанций с аппаратного тюнера. На мой взгляд для прослушивания станций, нет необдимости в оконном интеррфейсе, но в то же время интерфейс управления всегда должен быть под рукой. Т.к. использую Gnome решил, что для этого, Panel Applet будет самое то. Нахожусь в творческом застое..
Как я это вижу:
Апплет - в панели с небольшим дисплеем (реализовано) показывающем: - уровень сигнала (реализовано), - частоту настройки (реализовано), - информацию о приеме стерео-сигнала (реализовано), - уровень громкости звуковой канала (не реализовано).
Управление:
Колесиком мыши (при нахождении курсора на апплете): Mouse scroll up – увеличение горомкости (не реализовано); Mouse scroll down – увеличение горомкости (не реализовано); Ctrl + Mouse scroll up – переход на следующую (предустановленную) станцию (не реализовано); Ctrl + Mouse scroll down – переход на предыдущую (предустановленную) станцию (не реализовано); Ctrl +Shift + Mouse scroll up – увеличение частоты с заданным инкрементом (не реализовано); Ctrl +Shift + Mouse scroll down – уменьшение частоты с заданным инкрементом (не реализовано);
Левая кнопка мыши – показывает popup-окно с элементами управления реализующими функциональность описанную для колесика + возможно сприсок пресетов станций (пока не продумал до конца как оно должно выглядеть) (реализовано на начальном этапе);
Ctrl + Левая кнопка мыши – on/off (не реализовано);
Правая кнопка мыши – стандартное popup-меню Gnome (Preferences.., Settings.., About, Move, Lock to panel);
На данный момент оно работает и выводит звук на line-out тюнера (шнурок на line-in звуковухи) можно увеличивать/уменьшать частоту с инкрементом (0,05 MHz) используя кнопки "+" "-" в popup-окне, дисплей отрисовывается через API Cairo, простенький радио модуль через API V4L2.
Что нужно сделать: - Окно Preferences.. управления пресетами станций и т.п. и реализовать его функциональность (включая автосканирование диапазона) - Окно Settings.. с начальными установками работы оборудования (hw:1,0 dev/radio0 и т.п) и реализовать его функциональность - Доделать popup-oкно, в частности решить вопрос определения координат отображения окна Реализовать вывод звука через микшер (через line-in) и по pci и соответственно реализовать управление громкостью - GConf – получение и сохранение настроек и пресетов
Собственно может кто поделиться своими мыслями по данному поводу.. Может кто поделится кодом или идеями – очень интересует: - захват звука по PCI и т.п., по ALSA документации мало и она бестолковая (звуком пока вообще не занимался) - код или алгоритм определения координат вывода popup-окна, т.е чтобы popup-окно отображалось точно под апплетом, если аплет в верхней панели и соотвественно над апплетом если аплет в нижней панели и не справа и не слева, а именно под/над. - мысли по дизайну popup-окна, т.е. какие элементы управления в нем должны быть и как расположены
Может кто-то захочет чем-либо помочь..
>>> Просмотр (620x401, 67 Kb)