mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-15 17:33:37 +02:00
armbox: rework AC3 and DTS passtrough
//vanhofen: this commit includes all following fixes and a small
new change in setting_helpers.cpp
Origin commit data
------------------
Commit: a4789ae379
Author: Frankenstone <dampf_acc@online.de>
Date: 2018-09-09 (Sun, 09 Sep 2018)
This commit is contained in:
@@ -154,6 +154,13 @@ int CAudioSetup::showAudioSetup()
|
||||
CMenuOptionChooser * as_oj_ddsubchn = new CMenuOptionChooser(LOCALE_AUDIOMENU_DOLBYDIGITAL, &g_settings.audio_DolbyDigital, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
|
||||
as_oj_ddsubchn->setHint("", LOCALE_MENU_HINT_AUDIO_DD);
|
||||
|
||||
#if HAVE_ARM_HARDWARE
|
||||
CMenuOptionChooser * as_oj_ac3 = new CMenuOptionChooser(LOCALE_AUDIOMENU_AC3, &g_settings.ac3_pass, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
|
||||
as_oj_ac3->setHint("", LOCALE_MENU_HINT_AUDIO_AC3);
|
||||
|
||||
CMenuOptionChooser * as_oj_dts = new CMenuOptionChooser(LOCALE_AUDIOMENU_DTS, &g_settings.dts_pass, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
|
||||
as_oj_dts->setHint("", LOCALE_MENU_HINT_AUDIO_DTS);
|
||||
#else
|
||||
//dd via hdmi
|
||||
CMenuOptionChooser *as_oj_dd_hdmi = NULL;
|
||||
if (g_info.hw_caps->has_HDMI) {
|
||||
@@ -164,6 +171,7 @@ int CAudioSetup::showAudioSetup()
|
||||
//dd via spdif
|
||||
CMenuOptionChooser * as_oj_dd_spdif = new CMenuOptionChooser(LOCALE_AUDIOMENU_SPDIF_DD, &g_settings.spdif_dd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
|
||||
as_oj_dd_spdif->setHint("", LOCALE_MENU_HINT_AUDIO_SPDIF_DD);
|
||||
#endif // HAVE_ARM_HARDWARE
|
||||
|
||||
CMenuOptionChooser * as_oj_avsync = NULL;
|
||||
CMenuOptionNumberChooser * as_oj_vsteps = NULL;
|
||||
@@ -227,9 +235,14 @@ int CAudioSetup::showAudioSetup()
|
||||
audioSettings->addItem(as_oj_analogmode);
|
||||
audioSettings->addItem(GenericMenuSeparatorLine);
|
||||
//---------------------------------------------------------
|
||||
#if HAVE_ARM_HARDWARE
|
||||
audioSettings->addItem(as_oj_ac3);
|
||||
audioSettings->addItem(as_oj_dts);
|
||||
#else
|
||||
if (g_info.hw_caps->has_HDMI)
|
||||
audioSettings->addItem(as_oj_dd_hdmi);
|
||||
audioSettings->addItem(as_oj_dd_spdif);
|
||||
#endif // HAVE_ARM_HARDWARE
|
||||
audioSettings->addItem(as_oj_ddsubchn);
|
||||
//---------------------------------------------------------
|
||||
audioSettings->addItem(GenericMenuSeparatorLine);
|
||||
|
@@ -439,8 +439,13 @@ int CNeutrinoApp::loadSetup(const char * fname)
|
||||
g_settings.srs_algo = configfile.getInt32( "srs_algo", 1);
|
||||
g_settings.srs_ref_volume = configfile.getInt32( "srs_ref_volume", 75); //NI
|
||||
g_settings.srs_nmgr_enable = configfile.getInt32( "srs_nmgr_enable", 0);
|
||||
#if HAVE_ARM_HARDWARE
|
||||
g_settings.ac3_pass = configfile.getInt32( "ac3_pass", 0);
|
||||
g_settings.dts_pass = configfile.getInt32( "dts_pass", 0);
|
||||
#else
|
||||
g_settings.hdmi_dd = configfile.getInt32( "hdmi_dd", 0);
|
||||
g_settings.spdif_dd = configfile.getInt32( "spdif_dd", 1);
|
||||
#endif // HAVE_ARM_HARDWARE
|
||||
g_settings.analog_out = configfile.getInt32( "analog_out", 1);
|
||||
g_settings.avsync = configfile.getInt32( "avsync", 1);
|
||||
g_settings.clockrec = configfile.getInt32( "clockrec", 1);
|
||||
@@ -1333,9 +1338,14 @@ void CNeutrinoApp::saveSetup(const char * fname)
|
||||
configfile.setInt32( "srs_algo", g_settings.srs_algo);
|
||||
configfile.setInt32( "srs_ref_volume", g_settings.srs_ref_volume);
|
||||
configfile.setInt32( "srs_nmgr_enable", g_settings.srs_nmgr_enable);
|
||||
#if HAVE_ARM_HARDWARE
|
||||
configfile.setInt32( "ac3_pass", g_settings.ac3_pass);
|
||||
configfile.setInt32( "dts_pass", g_settings.dts_pass);
|
||||
#else
|
||||
configfile.setInt32( "hdmi_dd", g_settings.hdmi_dd);
|
||||
configfile.setInt32( "analog_out", g_settings.analog_out);
|
||||
configfile.setInt32( "spdif_dd", g_settings.spdif_dd);
|
||||
#endif
|
||||
configfile.setInt32( "analog_out", g_settings.analog_out);
|
||||
configfile.setInt32( "avsync", g_settings.avsync);
|
||||
configfile.setInt32( "clockrec", g_settings.clockrec);
|
||||
configfile.setInt32( "video_dbdr", g_settings.video_dbdr);
|
||||
@@ -2565,8 +2575,13 @@ TIMER_START();
|
||||
// init audio settings
|
||||
audioDecoder->SetSRS(g_settings.srs_enable, g_settings.srs_nmgr_enable, g_settings.srs_algo, g_settings.srs_ref_volume);
|
||||
//audioDecoder->setVolume(g_settings.current_volume, g_settings.current_volume);
|
||||
#if HAVE_ARM_HARDWARE
|
||||
audioDecoder->SetHdmiDD(g_settings.ac3_pass ? true : false);
|
||||
audioDecoder->SetSpdifDD(g_settings.dts_pass ? true : false);
|
||||
#else
|
||||
audioDecoder->SetHdmiDD((HDMI_ENCODED_MODE)g_settings.hdmi_dd);
|
||||
audioDecoder->SetSpdifDD(g_settings.spdif_dd ? true : false);
|
||||
#endif
|
||||
audioDecoder->EnableAnalogOut(g_settings.analog_out ? true : false);
|
||||
audioSetupNotifier = new CAudioSetupNotifier;
|
||||
// trigger a change
|
||||
|
@@ -153,6 +153,7 @@ typedef enum
|
||||
LOCALE_AUDIO_SRS_NMGR,
|
||||
LOCALE_AUDIO_SRS_VOLUME,
|
||||
LOCALE_AUDIOMENU_PCMOFFSET,
|
||||
LOCALE_AUDIOMENU_AC3,
|
||||
LOCALE_AUDIOMENU_ANALOG_MODE,
|
||||
LOCALE_AUDIOMENU_ANALOG_OUT,
|
||||
LOCALE_AUDIOMENU_AUTO_LANG,
|
||||
@@ -162,6 +163,7 @@ typedef enum
|
||||
LOCALE_AUDIOMENU_AVSYNC_AM,
|
||||
LOCALE_AUDIOMENU_CLOCKREC,
|
||||
LOCALE_AUDIOMENU_DOLBYDIGITAL,
|
||||
LOCALE_AUDIOMENU_DTS,
|
||||
LOCALE_AUDIOMENU_HDMI_DD,
|
||||
LOCALE_AUDIOMENU_HDMI_DD_AUTO,
|
||||
LOCALE_AUDIOMENU_HDMI_DD_FORCE,
|
||||
@@ -1166,12 +1168,14 @@ typedef enum
|
||||
LOCALE_MENU_HINT_APLAY,
|
||||
LOCALE_MENU_HINT_APLAY_SETUP,
|
||||
LOCALE_MENU_HINT_AUDIO,
|
||||
LOCALE_MENU_HINT_AUDIO_AC3,
|
||||
LOCALE_MENU_HINT_AUDIO_ADJUST_VOL_AC3,
|
||||
LOCALE_MENU_HINT_AUDIO_ADJUST_VOL_CLEAR,
|
||||
LOCALE_MENU_HINT_AUDIO_ADJUST_VOL_PCM,
|
||||
LOCALE_MENU_HINT_AUDIO_ANALOG_MODE,
|
||||
LOCALE_MENU_HINT_AUDIO_AVSYNC,
|
||||
LOCALE_MENU_HINT_AUDIO_DD,
|
||||
LOCALE_MENU_HINT_AUDIO_DTS,
|
||||
LOCALE_MENU_HINT_AUDIO_HDMI_DD,
|
||||
LOCALE_MENU_HINT_AUDIO_SPDIF_DD,
|
||||
LOCALE_MENU_HINT_AUDIO_SRS,
|
||||
|
@@ -153,6 +153,7 @@ const char * locale_real_names[] =
|
||||
"audio.srs_nmgr",
|
||||
"audio.srs_volume",
|
||||
"audiomenu.PCMOffset",
|
||||
"audiomenu.ac3",
|
||||
"audiomenu.analog_mode",
|
||||
"audiomenu.analog_out",
|
||||
"audiomenu.auto_lang",
|
||||
@@ -162,6 +163,7 @@ const char * locale_real_names[] =
|
||||
"audiomenu.avsync_am",
|
||||
"audiomenu.clockrec",
|
||||
"audiomenu.dolbydigital",
|
||||
"audiomenu.dts",
|
||||
"audiomenu.hdmi_dd",
|
||||
"audiomenu.hdmi_dd_auto",
|
||||
"audiomenu.hdmi_dd_force",
|
||||
@@ -1166,12 +1168,14 @@ const char * locale_real_names[] =
|
||||
"menu.hint_aplay",
|
||||
"menu.hint_aplay_setup",
|
||||
"menu.hint_audio",
|
||||
"menu.hint_audio_ac3",
|
||||
"menu.hint_audio_adjust_vol_ac3",
|
||||
"menu.hint_audio_adjust_vol_clear",
|
||||
"menu.hint_audio_adjust_vol_pcm",
|
||||
"menu.hint_audio_analog_mode",
|
||||
"menu.hint_audio_avsync",
|
||||
"menu.hint_audio_dd",
|
||||
"menu.hint_audio_dts",
|
||||
"menu.hint_audio_hdmi_dd",
|
||||
"menu.hint_audio_spdif_dd",
|
||||
"menu.hint_audio_srs",
|
||||
|
@@ -426,10 +426,17 @@ bool CAudioSetupNotifier::changeNotify(const neutrino_locale_t OptionName, void
|
||||
g_Zapit->setAudioMode(g_settings.audio_AnalogMode);
|
||||
} else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_ANALOG_OUT)) {
|
||||
audioDecoder->EnableAnalogOut(g_settings.analog_out ? true : false);
|
||||
#if HAVE_ARM_HARDWARE
|
||||
} else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_AC3)) {
|
||||
audioDecoder->SetHdmiDD(g_settings.ac3_pass ? true : false);
|
||||
} else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_DTS)) {
|
||||
audioDecoder->SetSpdifDD(g_settings.dts_pass ? true : false);
|
||||
#else
|
||||
} else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_HDMI_DD)) {
|
||||
audioDecoder->SetHdmiDD((HDMI_ENCODED_MODE) g_settings.hdmi_dd);
|
||||
} else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_SPDIF_DD)) {
|
||||
audioDecoder->SetSpdifDD(g_settings.spdif_dd ? true : false);
|
||||
#endif
|
||||
} else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_AUDIOMENU_AVSYNC)) {
|
||||
videoDecoder->SetSyncMode((AVSYNC_TYPE)g_settings.avsync);
|
||||
audioDecoder->SetSyncMode((AVSYNC_TYPE)g_settings.avsync);
|
||||
|
@@ -246,8 +246,13 @@ struct SNeutrinoSettings
|
||||
int srs_algo;
|
||||
int srs_ref_volume;
|
||||
int srs_nmgr_enable;
|
||||
#if HAVE_ARM_HARDWARE
|
||||
int ac3_pass;
|
||||
int dts_pass;
|
||||
#else
|
||||
int hdmi_dd;
|
||||
int spdif_dd;
|
||||
#endif // HAVE_ARM_HARDWARE
|
||||
int analog_out;
|
||||
int audio_volume_percent_ac3;
|
||||
int audio_volume_percent_pcm;
|
||||
|
Reference in New Issue
Block a user