Цитата Сообщение от Tualatin Посмотреть сообщение
Проблема в том, что после подключения AVC-LAN адаптера не работает CD-ченджер, голова как будто бы зависает и ничего не играет, можно переключиться в этот момент на радио, оно работает. После отключения и перезапуска головы ченджер работает как раньше. Так должно быть или я где-то налажал? Надеюсь кто-нибудь с этим уже сталкивался.
Это конфликт логических адресов ченджера в адаптере и штатного ченджера. Всего в системе может быть зарегистрированно два ченджера с адресами 0x43 и 0x63. Попробуйте поменять в файле AVCLanNavi.cpp все строки 0x63 на 0x43.
Чтобы проще было перехватить кнопки на руле, нужно понимать, что происходит в шине при их нажатии. Сами коды кнопок не передаются. Передаются команды головы при нажатии этих кнопок.
Например:
при нажатии кнопки громкости, будут выдаваться команды с текущим уровнем громкости или команда усилку (если он внешний) изменить громкость.
При нажатии кнопки mode, голова будет выдавать по несколько команд: остановить воспроизведение текущему устройству, начать играть следующему устройству.
при нажатии конопки листания треков, голова будет выдать команды только если устройство может листать треки (например если активирован видеовход, голова на эти кнопки реагировать не будет).
Почитайте про структуру команд вот здесь http://www.softservice.com.pl/corolla/avc/avclan.php
На практике я перехватывал только листание треков (но это может дать целых 4 команды - две листание треков и две перемотки) и нажатие 3х кнопок управления штатной навигацией (правда они на голове были)

Вот примеры команд с приведенного сайта
листание треков
const u08 next_track[] = { 0x4, 0x00, 0x25, 0x63, 0x94 };
const u08 prev_track[] = { 0x4, 0x00, 0x25, 0x63, 0x95 };

переключение дисков, тут прошивка адаптера должна сказать, что в эмулируемом ченджере несколько дисков и правильно отрабатывать переключение дисков. На вашей прошивке это не релализовано, насколько я помню)
const u08 next_cd[] = { 0x4, 0x00, 0x25, 0x63, 0x90 };
const u08 prev_cd[] = { 0x4, 0x00, 0x25, 0x63, 0x91 };

перемотка
const u08 fast_forward[]= { 0x4, 0x00, 0x25, 0x63, 0x98 };
const u08 fast_back[] = { 0x4, 0x00, 0x25, 0x63, 0x99 };