Показать сообщение отдельно
Старый 28.02.2007, 02:16   #1
Wanted
Hello world!
 
Аватар для Wanted
 
Регистрация: 28.01.2007
Город: Moscow
Регион: 77, 97, 99, 177
Машина: BMW-320td-2001 BMW-E92-325XI
Сообщений: 1,209
Wanted will become famous soon enoughWanted will become famous soon enough
Arrow Радио или Любой Тюнер через WinAmp

Ветка в целом уже не актуальна, новое "легкое" решение см. здесь http://forum.pccar.ru/showthread.php?p=19248#post19248

Ну вот и здравствуйте.
Попробую описать все максимально досконально, как говорится чтобы понял даже ребенок!

Проблема подключения радио-тюнера в RR насущна и достаточно актуальна, особенно для тех, у кого Radiator отказался "дружить" с Тюнером. Про ТВ особо говорить не буду (думаю сдружить RR и ТВ через родную прогу смогут многие), а вот RR и Радио постараюсь изложить по максимуму.

Итак, купив GoTView PCI 2 DVD Deluxe и принеся его домой, не ожидал что этот гад не сможет жить с Радиатором. Посему перелопатив почти весь интернет в поисках плугинов/программ/народных средств/бубнов и прочей лабуды понял, что придется делать все самому.

Перепробовал кучу вариантов, пытался прикрутить родную прогу - но без доработки самого RR (а именно компоновки его SDK и сорцов под себя или написания плугина к нему) ничего не получится!
Поэтому глянув на WinAmp TV Plugin (который кстати в ТВ режиме у меня толком так и не заработал совместно с RR) родил идею о его хорошей дружности с DirectSound FM Тюнерами.

Посему что у меня получилось:
1.Радио я слушаю через WinAmp, заранее отсканированными пресетами (.tvc), интерфейс родной скина BMW.
Но: Пока не работает подсветка частоты данного канала и невозможность настройки доп. радостанций без вмешательства "ручками" в пресеты.
2. Радио работает также как и музыка (закаладка AUDIO), а именно:
если я включил свои любимые .MP3 то они играют на любой закладке (ну кроме DVD/TV и Видео) т.е. выйдя из закладки AUDIO я продолжаю слушать музыку.
Тоже самое и с радио, причем если играет музыка и я захожу в радио - ессно аудио глохнет, начинается радио и наоборот.

Теперь как это получилось:

Взял скин (RADIO_player.skin) переименовал его в MYRADIO_player.skin и чуток его поменял (отключил некоторые кнопки LOCAL, TUNE, SEEK и Пресеты, кстати потом планирую их опять оживить).
На первом скрине видно как все отображается.
При загрузке окна MYRADIO вот что срабатывает (из моего EXECtbl.ini):
Все описано по порядку, с описанием каждой команды.

Код:
"MYRADIO","BYVAR;ISRADIO;MYRADIOSTART<<MYRADIORESUME"
- Этой командой запускается RADIO скин из главного меню, она определяет запущено ли радио уже или нет. если да - то просто заходим на страницу MYRADIO_player.skin (команда MYRADIORESUME) иначе MYRADIOSTART

"MYRADIOSTART","SETVAR;ISRADIO;1||MUTE||BACKUPPLAYLIST||STOP||CLEARLIST||RUNQW;C:\Program Files\Road Runner\BATs\LoadRadio.bat||LOADLIST;C:\Program Files\Winamp\TV.m3u||STOP||LOAD;MYRADIO_PLAYER.skin||SETLIST;$RADIOCHANNEL$||PLAY||MUTE"
- Этой командой мы устанавливаем переменную ISRADIO=1, что означает что радио в данный момент активно.|| Глушим звук. ||Запускаем BACKUPPLAYLIST (описание ниже). || Запускаем скрипт (LoadRadio.bat) он копирует плэйлист с радио-пресетами в текущий winamp.m3u || Даем команду RR прочитать данный плейлист в себя || Тормозим его (так надо) || открываем сам Радио Скин || Устанавливаем текущую Радиостанцию на запомненную (если Радио закрывалось, станция сохраняется) || Запускаем проигрывание || есс-но включаем звук

"MYRADIORESUME","LOAD;MYRADIO_PLAYER.skin"
-Грузим Радио Скин

"MYRADIOCLOSE","SETVARBYCODE;RADIOCHANNEL;TRACKNUMBER||EXIT"
-Эта команда срабатывает (стоит на кнопке закрытия скина) собственно при закрытии скина (переходе в главное меню). || Сохраняем текущую радиостанцию в переменную RADIOCHANNEL (тупо копируем в нее текущий номер позиции в плэйлисте) || Выходим в главное меню

Теперь о магии:
"BACKUPPLAYLIST","SETVAR;SAVED;1||SAVELIST;C:\program files\winamp\_backup_winamp.m3u||SETVARBYCODE;SAVEDTRACKNUM;TRACKNUMBER||SETVARBYCODE;SAVEDTRACKPOS;CURRENTTRACKTIME"
-Этой командой я БэкАплю текущий плэйлист (путь видно в команде)|| В переменные SAVEDTRACKNUM - заносим текущую позицию в плейлисте, в SAVEDTRACKPOS - текущую позицию в текущем трэке, чтобы потом его вернуть на то же самое место!

"RESTOREPLAYLIST","MUTE||STOP||SETVAR;SAVED;0||RUNQW;C:\Program Files\Road Runner\BATs\restorePL.bat||LOADLIST;C:\Program Files\Winamp\winamp.m3u||SETLIST;$SAVEDTRACKNUM$||PLAY||SEEKTO;$SAVEDTRACKPOS$||MUTE"
-Этой командой мы есс-но возвращаем предыдущий плэйлист на место и устанавливаем трэк и позицию в нем на запомненное место! (ВАУ, фишка)
Теперь два .BAT файла:

loadRadio.bat: - Копирует заранее созданный плэйлист с файлами .tvc т.е. с настройками Радио каналов, в папку к ВинАмпу (в целом его можно исключить, но это в следующей версии )
Код:
@echo off
copy "D:\TV\tv.m3u" "c:\program files\winamp\TV.m3u" /Y
restorePL.bat: - восстанавлиает игравший ранее плэйлист на место. Все просто как у Буша в политике.
Код:
@echo off
copy "C:\Program Files\Winamp\_backup_winamp.m3u" "C:\Program Files\Winamp\winamp.m3u" /Y
Теперь о тонкостях:- Если ВинАмп крутит радио и я хочу посмотреть ТВ, то ВинАмп конечно останавливает его играть. Но после выхода из ТВ режима, ВинАмп не может переключить Тюнер "вручную" обратно в FM. Поэтому, перед открытием ТВ окна, мне приходится глушить ВинАмп (т.е. закрывать его принудительно). Код Входа в ТВ окно см. ниже

Собственно код открытия Скина ТВ:
Код:
"TV","MUTE||TVBACKUPPLAYLIST||STOP||LOAD;TVW.skin;GoTView;c:\program files\gotview\gotview.exe;TV Screen||CLOSEWINAMP||MUTE"
-Глушим Все и всех || бэкапим Плэйлист (команда отличается от ранее-описанной, только тем что сохраняет текущий плейлист в другой фал, во избежании перекреста плэйлистов) сама она ниже ||Запускаем GoTView.exe || Убиваем ВинАмп || Включаем звук

"TVBACKUPPLAYLIST","SAVELIST;C:\program files\winamp\_backupTV_winamp.m3u||SETVARBYCODE;SAVEDTRACKNUMTV;TRACKNUMBER||SETVARBYCODE;SAVEDTRACKPOSTV;CURRENTTRACKTIME"
- Все тоже самое что и в BACKUPPLAYLIST
Код:
"TVCLOSE","CLOSE||STARTWINAMP||TVRESTOREPLAYLIST"
-Закрываем GoTView.exe || Стартуем ВинАмп || Восстанавлиаем Плэйлист игравший до открытия ТВ

"TVRESTOREPLAYLIST","MUTE||STOP||RUNQW;C:\Program Files\Road Runner\BATs\restorePLTV.bat||LOADLIST;C:\Program Files\Winamp\winamp.m3u||SETLIST;$SAVEDTRACKNUMTV$||PLAY||SEEKTO;$SAVEDTRACKPOSTV$||MUTE"
-Собственно это командой!
Кажется все, ничего не забыл.

В будующем прикручу:
- Возможность через ВинАмп настраивать Радио по набору частоты кнопками, в скине есть такая возможность, будет и у меня.
- Отображение текущей частоты станции (думаю это решить просто, через SENDMESSAGE который уже готов в RR, но это уже тонкости).
- Сохранение списка станций в пресеты (на картинке - кнопки с циферками)
ну и может быть еще чен-ть...

"Но" данного варианта:
- Врядли получится как-то подрубить RDS, даже если тюнер его может "слушать"
- Пресеты имеют вид как на картинке - с расширениями .tvc, косяк конечно, но с этим можно сжится беееез особых проблем. Хотя думаю решаемо.

А о плюсах - судить вам.
Может FAQ получился громоздкий (в большинстве случаев код уменьшится в два-три раза), но это работает так как мне нравится и думаю я не один такой
Миниатюры
Нажмите на изображение для увеличения
Название: SP_A0047.jpg
Просмотров: 2882
Размер:	55.8 Кб
ID:	1857  
__________________
Мой mediaBMW

Прогресс постройки: [##########] 100%
Прогресс установки: [##########] 100%
Прогресс настройки: [#########-] 90% Почти до идеала

Видеонаблюдение в машине? ДА!

Последний раз редактировалось Wanted; 02.03.2007 в 01:36.
Wanted вне форума   Ответить с цитированием