Кажется я начинаю кое чего понимать .
Попробую доказать прозвонкой. но нужен бы донор со снятыми 6323 и центральным процом .
Идея такая . в логе я вижу что есть у него какойто прям отдельный поток FM и он идет по шине i2S . И это прям реализовано на уровне звуковых библиотек . в ALSA
Есть предположение , которое многое обьяснит
с 6625 выходит шина i2S , и я вот не знаком с ней подробно - кто знает подскажите, и она физически соединяет все устройства , на ней висит и центральный проц , и 6625 и 6323 . в моем случае уже висит еще и DSP .
Итого дроид только запускает поток с 6625 , а потом его уже просто декодирует или 6323 или dsp . При этом звуки дроида , просто в эту же шину подкидываются паралельно !
Поэтому управлять , типо того чтобы приглушить , скорее всего не получится , так как приглушить можно только в самом DSP или 7729 . Но может быть можно в 6323 ...
Нужно почитать доку на 6625 , и его команды управления , возможно там есть громкость выхода .
Это предположение обьяснит многое . например то почему в ЦАП ЮСБ не выходит звук радио - потом что ЦП его не обрабатывает !
Это также обьяснит почему у меня пропал секундный затык уведомлений при переходе на DSP , я просто читаю шину напрямую без 6323 .
Это также обьясняет почему на 9213 не работает эквалайзер и все подобное на радио - потому что звук с радио идет сразу в 6323 !
Это как бы и хорошая и плохая новость - хорошая , я попробую прозвонить шину на 6625 , и всем остальным можно будет туда подключать DSP .
Но если у когото есть мертвая плата то неплохо бы сдуть 6323 и ЦП и прозвонить шину i2S .
Однако если верить схеме на Lonovo 5500H , то с 6625 выходит только FM DATA и FM CLK , оно идет в CPU а с него отдельно шина на 6323 и отдельно шина i2S
Так что все равно это проходит через ЦП , значит этим МОжно управлять .. вот почему не получается то ни у кого ? ..
Подскажите как то можно Руками в терминале давать команды аналогичные тем что дают приложения ?
Вероятно тут
https://github.com/iyk…udio/common/V3/aud_drv исходники каких то звуковых билиотек . и там есть все то что я видел в Логе , там именно и формируется этот аудио поток . Но почемуто не управляется громкость !
Во что он собирается ? и как собрать ? может можно что то изменить и все заработает ? и дело не в приложении а в библиотеке ? веть в логе я видел поставить громкость 0.5 . но она игнорируется .
Если я правильно понял код
status_t AudioALSAFMController::setFmVolume(const float fm_volume) {
ALOGD("%s(), mFmVolume = %f => fm_volume = %f", __FUNCTION__, mFmVolume, fm_volume);
const float kMaxFmVolume = 1.0;
ASSERT(0 <= fm_volume && fm_volume <= kMaxFmVolume); // valid volume value: 0.0 ~ 1.0
mFmVolume = fm_volume;
if (WCNChipController::GetInstance()->IsSupportFM() == false) {
ALOGW("-%s(), Don't support FM in the platform", __FUNCTION__);
return INVALID_OPERATION;
}
// Set HW Gain for Direct Mode // TODO(Harvey): FM Volume
if (mFmEnable == true && mIsFmDirectConnectionMode == true) {
mAudioALSAVolumeController->setFmVolume(mFmVolume);
} else {
ALOGD("%s(), Do nothing. mFMEnable = %d, mIsFmDirectConnectionMode = %d", __FUNCTION__, mFmEnable, mIsFmDirectConnectionMode);
}
return NO_ERROR;
}
То какойто Harvey написал - СДЕЛАТЬ регулировку громкости (((
в данной конструкции только заведена процедура , но не описано что ей делать ( ...
кто то понимает что можно сделать с этими библиотеками и дописать эту функцию ?
Сообщение отредактировал Stranger21ufa - 06.07.20, 07:37