📄 opts.c
字号:
l = g_list_append(l, (gpointer)"/dev/sound/dsp1"); l = g_list_append(l, (gpointer)"/dev/sound/dsp2"); l = g_list_append(l, (gpointer)"/dev/sound/dsp3"); } else { l = g_list_append(l, (gpointer)"/dev/dsp0"); l = g_list_append(l, (gpointer)"/dev/dsp1"); l = g_list_append(l, (gpointer)"/dev/dsp2"); l = g_list_append(l, (gpointer)"/dev/dsp3"); }#ifdef HAVE_DXR3 l = g_list_append(l, (gpointer)"/dev/em8300_ma"); l = g_list_append(l, (gpointer)"/dev/em8300_ma-0"); l = g_list_append(l, (gpointer)"/dev/em8300_ma-1"); l = g_list_append(l, (gpointer)"/dev/em8300_ma-2"); l = g_list_append(l, (gpointer)"/dev/em8300_ma-3");#endif return l;}GList *appendOSSMixers(GList *l) { // careful! the current implementation allows only string constants! l = g_list_append(l, (gpointer)"/dev/mixer"); if (gtkAOOSSMixer && strncmp(gtkAOOSSMixer, "/dev/sound", 10) == 0) { l = g_list_append(l, (gpointer)"/dev/sound/mixer0"); l = g_list_append(l, (gpointer)"/dev/sound/mixer1"); l = g_list_append(l, (gpointer)"/dev/sound/mixer2"); l = g_list_append(l, (gpointer)"/dev/sound/mixer3"); } else { l = g_list_append(l, (gpointer)"/dev/mixer0"); l = g_list_append(l, (gpointer)"/dev/mixer1"); l = g_list_append(l, (gpointer)"/dev/mixer2"); l = g_list_append(l, (gpointer)"/dev/mixer3"); } return l;}GList *appendOSSMixerChannels(GList *l) { l = g_list_append(l, (gpointer)"vol"); l = g_list_append(l, (gpointer)"pcm"); l = g_list_append(l, (gpointer)"line"); return l;}#endif#if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X)GList *appendALSADevices(GList *l) { l = g_list_append(l, (gpointer)"default"); l = g_list_append(l, (gpointer)"hw=0.0"); l = g_list_append(l, (gpointer)"hw=0.1"); l = g_list_append(l, (gpointer)"hw=0.2"); l = g_list_append(l, (gpointer)"surround40"); l = g_list_append(l, (gpointer)"surround51"); l = g_list_append(l, (gpointer)"plug=surround40"); l = g_list_append(l, (gpointer)"plug=surround51"); return l;}GList *appendALSAMixers(GList *l) { l = g_list_append(l, (gpointer)"default"); return l;}GList *appendALSAMixerChannels(GList *l) { l = g_list_append(l, (gpointer)"Master"); l = g_list_append(l, (gpointer)"Line"); l = g_list_append(l, (gpointer)"PCM"); l = g_list_append(l, (gpointer)"PCM,1"); return l;}#endif#ifdef HAVE_SDLGList *appendSDLDevices(GList *l) { l = g_list_append(l, (gpointer)"alsa"); l = g_list_append(l, (gpointer)"arts"); l = g_list_append(l, (gpointer)"esd"); l = g_list_append(l, (gpointer)"jack"); l = g_list_append(l, (gpointer)"oss"); l = g_list_append(l, (gpointer)"nas"); return l;}#endif#ifdef USE_ESDGList *appendESDDevices(GList *l) { l = g_list_append(l, (gpointer)"Enter Remote IP"); l = g_list_append(l, (gpointer)"Use Software Mixer"); return l;}#endif// Gets text string from a gtk entry, interpreting // MSGTR_PREFERENCES_DriverDefault as null string.char *getGtkEntryText(GtkWidget *from) { char *tmp = gtk_entry_get_text(GTK_ENTRY(from)); if (strcmp(tmp, MSGTR_PREFERENCES_DriverDefault) == 0) { tmp = NULL; } return tmp;}// Sets text string of a gtk entry, interpreting // null string as MSGTR_PREFERENCES_DriverDefault.void setGtkEntryText(GtkWidget *dest, char *to) { if (!to) { to = MSGTR_PREFERENCES_DriverDefault; } gtk_entry_set_text(GTK_ENTRY(dest),to);} GtkWidget *AudioConfig;static GtkWidget *CEAudioDevice;static GtkWidget *CBAudioDevice;static GtkWidget *CEAudioMixer;static GtkWidget *CBAudioMixer;static GtkWidget *CEAudioMixerChannel;static GtkWidget *CBAudioMixerChannel;static GtkWidget *BAudioOk;static GtkWidget *BAudioCancel;void ShowAudioConfig() { if (AudioConfig) gtkActive(AudioConfig); else AudioConfig = create_AudioConfig();#ifdef USE_OSS_AUDIO if (strncmp(ao_driver[0], "oss", 3) == 0) { setGtkEntryText(CEAudioDevice, gtkAOOSSDevice); setGtkEntryText(CEAudioMixer, gtkAOOSSMixer); setGtkEntryText(CEAudioMixerChannel, gtkAOOSSMixerChannel); }#endif#if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X) if (strncmp(ao_driver[0], "alsa", 4) == 0) { setGtkEntryText(CEAudioDevice, gtkAOALSADevice); setGtkEntryText(CEAudioMixer, gtkAOALSAMixer); setGtkEntryText(CEAudioMixerChannel, gtkAOALSAMixerChannel); }#endif#ifdef HAVE_SDL if (strncmp(ao_driver[0], "sdl", 3) == 0) { setGtkEntryText(CEAudioDevice, gtkAOSDLDriver); }#endif#ifdef USE_ESD if (strncmp(ao_driver[0], "esd", 3) == 0) { setGtkEntryText(CEAudioDevice, gtkAOESDDevice); }#endif gtk_widget_show(AudioConfig); gtkSetLayer(AudioConfig);}void HideAudioConfig() { if (!AudioConfig) return; gtk_widget_hide(AudioConfig); gtk_widget_destroy(AudioConfig); AudioConfig=NULL;}static void audioButton(GtkButton *button, gpointer user_data) { switch( (int)user_data ) { case 1:#ifdef USE_OSS_AUDIO if (strncmp(ao_driver[0], "oss", 3) == 0) { gfree(>kAOOSSDevice); gtkAOOSSDevice = gstrdup(getGtkEntryText(CEAudioDevice)); gfree(>kAOOSSMixer); gtkAOOSSMixer = gstrdup(getGtkEntryText(CEAudioMixer)); gfree(>kAOOSSMixerChannel); gtkAOOSSMixerChannel = gstrdup(getGtkEntryText(CEAudioMixerChannel)); }#endif#if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X) if (strncmp(ao_driver[0], "alsa", 4) == 0) { gfree(>kAOALSADevice); gtkAOALSADevice = gstrdup(getGtkEntryText(CEAudioDevice)); gfree(>kAOALSAMixer); gtkAOALSAMixer = gstrdup(getGtkEntryText(CEAudioMixer)); gfree(>kAOALSAMixerChannel); gtkAOALSAMixerChannel = gstrdup(getGtkEntryText(CEAudioMixerChannel)); }#endif#ifdef HAVE_SDL if (strncmp(ao_driver[0], "sdl", 3) == 0) { gfree(>kAOSDLDriver); gtkAOSDLDriver = gstrdup(getGtkEntryText(CEAudioDevice)); }#endif#ifdef USE_ESD if (strncmp(ao_driver[0], "esd", 3) == 0) { gfree(>kAOESDDevice); gtkAOESDDevice = gstrdup(getGtkEntryText(CEAudioDevice)); }#endif case 0: HideAudioConfig(); break; }}GtkWidget *create_AudioConfig() { GList *items = NULL; GtkWidget *vbox; GtkWidget *table; GtkWidget *label; GtkWidget *hbuttonbox; GtkAccelGroup *accel_group; AudioConfig = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_name(AudioConfig, "AudioConfig"); gtk_object_set_data(GTK_OBJECT(AudioConfig), "AudioConfig", AudioConfig); gtk_window_set_title(GTK_WINDOW(AudioConfig), MSGTR_AudioPreferences); gtk_window_set_position(GTK_WINDOW(AudioConfig), GTK_WIN_POS_CENTER); gtk_window_set_policy(GTK_WINDOW(AudioConfig), FALSE, FALSE, FALSE); gtk_window_set_wmclass(GTK_WINDOW(AudioConfig), "Audio Config", "MPlayer"); gtk_widget_realize(AudioConfig); gtkAddIcon(AudioConfig); vbox = AddVBox(AddDialogFrame(AudioConfig), 0); table = gtk_table_new(2, 3, FALSE); gtk_widget_set_name(table, "table"); gtk_widget_show(table); gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0); label = AddLabel(MSGTR_PREFERENCES_Audio_Device, NULL); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); CBAudioDevice = AddComboBox(NULL); gtk_table_attach(GTK_TABLE(table), CBAudioDevice, 1, 2, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); items = g_list_append(items,(gpointer)MSGTR_PREFERENCES_DriverDefault);#ifdef USE_OSS_AUDIO if (strncmp(ao_driver[0], "oss", 3) == 0) items = appendOSSDevices(items);#endif#if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X) if (strncmp(ao_driver[0], "alsa", 4) == 0) items = appendALSADevices(items);#endif#ifdef HAVE_SDL if (strncmp(ao_driver[0], "sdl", 3) == 0) items = appendSDLDevices(items);#endif#ifdef USE_ESD if (strncmp(ao_driver[0], "esd", 3) == 0) items = appendESDDevices(items);#endif gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioDevice), items); g_list_free(items); items = NULL; CEAudioDevice = GTK_COMBO(CBAudioDevice)->entry; gtk_widget_set_name(CEAudioDevice, "CEAudioDevice"); gtk_widget_show(CEAudioDevice); label = AddLabel(MSGTR_PREFERENCES_Audio_Mixer, NULL); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); CBAudioMixer = AddComboBox(NULL); gtk_table_attach(GTK_TABLE(table), CBAudioMixer, 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); items = g_list_append(items, (gpointer)MSGTR_PREFERENCES_DriverDefault);#ifdef USE_OSS_AUDIO if (strncmp(ao_driver[0], "oss", 3) == 0) items = appendOSSMixers(items);#endif#if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X) if (strncmp(ao_driver[0], "alsa", 4) == 0) items = appendALSAMixers(items);#endif gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioMixer), items); g_list_free(items); items = NULL; CEAudioMixer = GTK_COMBO(CBAudioMixer)->entry; gtk_widget_set_name(CEAudioMixer, "CEAudioMixer"); gtk_widget_show(CEAudioMixer); label = AddLabel(MSGTR_PREFERENCES_Audio_MixerChannel, NULL); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); CBAudioMixerChannel = AddComboBox(NULL); gtk_table_attach(GTK_TABLE(table), CBAudioMixerChannel, 1, 2, 2, 3, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); items = g_list_append(items, (gpointer)MSGTR_PREFERENCES_DriverDefault);#ifdef USE_OSS_AUDIO if (strncmp(ao_driver[0], "oss", 3) == 0) items = appendOSSMixerChannels(items);#endif#if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X) if (strncmp(ao_driver[0], "alsa", 4) == 0) items = appendALSAMixerChannels(items);#endif gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioMixerChannel), items); g_list_free(items); items = NULL; CEAudioMixerChannel = GTK_COMBO(CBAudioMixerChannel)->entry; gtk_widget_set_name(CEAudioMixerChannel, "CEAudioMixerChannel"); gtk_widget_show(CEAudioMixerChannel); AddHSeparator(vbox); hbuttonbox = AddHButtonBox(vbox); gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox), GTK_BUTTONBOX_END); gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbuttonbox), 10); BAudioOk = AddButton(MSGTR_Ok, hbuttonbox); BAudioCancel = AddButton(MSGTR_Cancel, hbuttonbox); gtk_signal_connect(GTK_OBJECT(AudioConfig), "destroy", GTK_SIGNAL_FUNC(WidgetDestroy), &AudioConfig); gtk_signal_connect(GTK_OBJECT(BAudioOk), "clicked", GTK_SIGNAL_FUNC(audioButton), (void*)1); gtk_signal_connect(GTK_OBJECT(BAudioCancel), "clicked", GTK_SIGNAL_FUNC(audioButton), (void*)0); accel_group = gtk_accel_group_new(); gtk_widget_add_accelerator(BAudioOk, "clicked", accel_group, GDK_Return, 0, GTK_ACCEL_VISIBLE); gtk_widget_add_accelerator(BAudioCancel, "clicked", accel_group, GDK_Escape, 0, GTK_ACCEL_VISIBLE); gtk_window_add_accel_group(GTK_WINDOW(AudioConfig), accel_group); return AudioConfig;}#ifdef HAVE_DXR3// --- dxr3 config boxstatic GtkWidget * DXR3Config;static GtkWid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -