ghb_ui_update(ud, "AudioSamplerate", ghb_int64_value(0));
ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(0));
}
+ ghb_ui_update(ud, "AudioTrackDRCSlider", ghb_double_value(0));
}
else if (acodec == HB_ACODEC_FAAC && mix != HB_AMIXDOWN_6CH)
{
if (ghb_get_audio_info (&ainfo, titleindex, track) &&
ghb_audio_is_passthru (acodec_code))
{
- if (ainfo.codec != acodec_code)
+ // HB_ACODEC_* are bit fields. Treat acodec_code as mask
+ if (!(ainfo.codec & acodec_code))
{
acodec_code = ghb_get_default_acodec();
// If there's more audio to process, or we've already
acodec_code = 0;
}
}
+ else
+ {
+ acodec_code &= ainfo.codec;
+ }
}
if (titleindex >= 0 && track < 0)
acodec_code = 0;
br = ghb_settings_combo_option(asettings, "AudioBitrate");
sr = ghb_settings_combo_option(asettings, "AudioSamplerate");
mix = ghb_settings_combo_option(asettings, "AudioMixdown");
- drc = ghb_settings_get_string(asettings, "AudioTrackDRCSlider");
s_track = ghb_settings_get_string(asettings, "AudioTrack");
s_codec = ghb_settings_get_string(asettings, "AudioEncoder");
s_sr = ghb_settings_get_string(asettings, "AudioSamplerate");
s_mix = ghb_settings_get_string(asettings, "AudioMixdown");
s_drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
+ if (s_drc < 0.1)
+ drc = g_strdup("Off");
+ else
+ drc = g_strdup_printf("%.1f", s_drc);
gtk_list_store_set(GTK_LIST_STORE(store), &iter,
// These are displayed in list
2, br,
3, sr,
4, mix,
- // These are used to set combo values when a list item is selected
5, drc,
+ // These are used to set combo values when a list item is selected
6, s_track,
7, s_codec,
8, s_br,
}
}
-void
+G_MODULE_EXPORT void
audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
static gint prev_acodec = 0;
ghb_live_reset(ud);
}
-void
+G_MODULE_EXPORT void
audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
GValue *asettings;
ghb_live_reset(ud);
}
-void
+G_MODULE_EXPORT void
audio_mix_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
GValue *asettings;
- g_debug("audio_widget_changed_cb ()");
+ g_debug("audio_mix_changed_cb ()");
ghb_adjust_audio_rate_combos(ud);
ghb_check_dependency(ud, widget);
asettings = get_selected_asettings(ud);
ghb_live_reset(ud);
}
-void
+G_MODULE_EXPORT void
audio_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
GValue *asettings;
ghb_live_reset(ud);
}
+G_MODULE_EXPORT void
+drc_widget_changed_cb(GtkWidget *widget, gdouble val, signal_user_data_t *ud)
+{
+ GValue *asettings;
+ GtkLabel *label;
+ gchar *drc;
+
+ g_debug("drc_widget_changed_cb ()");
+ if (val > 0.8 && val < 1.0)
+ gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), 1.0);
+ if (val <= 0.8 && val > 0.5)
+ gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), 0.0);
+ else if (val > 0.0 && val <= 0.5)
+ gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), 1.0);
+
+ label = GTK_LABEL(GHB_WIDGET(ud->builder, "drc_label"));
+ if (val < 1.0)
+ drc = g_strdup_printf("Off");
+ else
+ drc = g_strdup_printf("%.1f", val);
+ gtk_label_set_text(label, drc);
+ g_free(drc);
+ ghb_check_dependency(ud, widget);
+ asettings = get_selected_asettings(ud);
+ if (asettings != NULL)
+ {
+ ghb_widget_to_setting(asettings, widget);
+ audio_list_refresh_selected(ud);
+ }
+ ghb_live_reset(ud);
+}
+
// subtitles differ from other settings in that
// the selection is updated automaitcally when the title
// changes. I don't want the preset selection changed as
// would happen for regular settings.
-void
+G_MODULE_EXPORT void
subtitle_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
const gchar *name = gtk_widget_get_name(widget);
br = ghb_settings_combo_option(settings, "AudioBitrate");
sr = ghb_settings_combo_option(settings, "AudioSamplerate");
mix = ghb_settings_combo_option(settings, "AudioMixdown");
- drc = ghb_settings_get_string(settings, "AudioTrackDRCSlider");
s_track = ghb_settings_get_string(settings, "AudioTrack");
s_codec = ghb_settings_get_string(settings, "AudioEncoder");
s_sr = ghb_settings_get_string(settings, "AudioSamplerate");
s_mix = ghb_settings_get_string(settings, "AudioMixdown");
s_drc = ghb_settings_get_double(settings, "AudioTrackDRCSlider");
+ if (s_drc < 0.1)
+ drc = g_strdup("Off");
+ else
+ drc = g_strdup_printf("%.1f", s_drc);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
2, br,
3, sr,
4, mix,
- // These are used to set combo box values when a list item is selected
5, drc,
+ // These are used to set combo box values when a list item is selected
6, s_track,
7, s_codec,
8, s_br,
g_free(s_mix);
}
-void
+G_MODULE_EXPORT void
audio_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_t *ud)
{
GtkTreeModel *store;
}
}
-void
+G_MODULE_EXPORT void
audio_add_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
{
// Add the current audio settings to the list.
ghb_array_append(audio_list, asettings);
add_to_audio_list(ud, asettings);
count = ghb_array_len(audio_list);
- if (count >= 8)
+ if (count >= 99)
{
gtk_widget_set_sensitive(xwidget, FALSE);
}
}
-void
+G_MODULE_EXPORT void
audio_remove_clicked_cb(GtkWidget *widget, signal_user_data_t *ud)
{
GtkTreeView *treeview;