|
|
| version 1.2, 2004/07/29 15:18:45 | version 1.6, 2009/03/05 11:50:39 |
|---|---|
| Line 1 | Line 1 |
| /* $Id$ */ | /* $Id$ */ |
| /* | /* |
| * Copyright (c) 2002, 2003, 2004 | * Copyright (c) 2002-2004 NONAKA Kimihiro |
| * NONAKA Kimihiro (aw9k-nnk@asahi-net.or.jp) All rights reserved. | * All rights reserved. |
| * | * |
| * Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions | * modification, are permitted provided that the following conditions |
| Line 269 static const char *joypad_num_str[256] = | Line 269 static const char *joypad_num_str[256] = |
| "248", "249", "250", "251", "252", "253", "254", "255", | "248", "249", "250", "251", "252", "253", "254", "255", |
| }; | }; |
| static const joydrv_handle_t *joypad_devlist; | static const joymng_devinfo_t **joypad_devlist; |
| static GtkWidget *joypad_use_checkbutton[1]; | static GtkWidget *joypad_use_checkbutton[1]; |
| static GtkWidget *joypad_devlist_combo; | static GtkWidget *joypad_devlist_combo; |
| static GtkWidget *joypad_axis_combo[JOY_NAXIS]; | static GtkWidget *joypad_axis_combo[JOY_NAXIS]; |
| Line 279 static UINT8 joypad_axis[JOY_NAXIS]; | Line 279 static UINT8 joypad_axis[JOY_NAXIS]; |
| static UINT8 joypad_button[JOY_NBUTTON]; | static UINT8 joypad_button[JOY_NBUTTON]; |
| /* | |
| * Driver | |
| */ | |
| static const char *driver_name[SNDDRV_DRVMAX] = { | |
| "None", | |
| "NetBSD", | |
| "OSS", | |
| "EsounD", | |
| "SDL", | |
| }; | |
| static GtkWidget *driver_audio_device_entry; | |
| static int driver_snddrv; | |
| static void | static void |
| ok_button_clicked(GtkButton *b, gpointer d) | ok_button_clicked(GtkButton *b, gpointer d) |
| { | { |
| Line 331 ok_button_clicked(GtkButton *b, gpointer | Line 315 ok_button_clicked(GtkButton *b, gpointer |
| UINT8 joypad[1]; | UINT8 joypad[1]; |
| gint joypad_device_index; | gint joypad_device_index; |
| /* Driver */ | |
| const gchar *driver_audiodevp; | |
| /* common */ | /* common */ |
| char buf[32]; | char buf[32]; |
| int i; | int i; |
| Line 379 ok_button_clicked(GtkButton *b, gpointer | Line 360 ok_button_clicked(GtkButton *b, gpointer |
| for (i = 0; i < NELEMENTS(snd26_ioport_str); i++) { | for (i = 0; i < NELEMENTS(snd26_ioport_str); i++) { |
| if (strcmp(snd26_ioport, snd26_ioport_str[i]) == 0) { | if (strcmp(snd26_ioport, snd26_ioport_str[i]) == 0) { |
| if (SND26_GET_IOPORT() != i) { | if (SND26_GET_IOPORT() != i) { |
| snd86opt |= SND26_SET_IOPORT(i); | snd26opt |= SND26_SET_IOPORT(i); |
| snd86opt_mask |= SND26_MASK_IOPORT; | snd26opt_mask |= SND26_MASK_IOPORT; |
| renewal = TRUE; | renewal = TRUE; |
| } | } |
| break; | break; |
| Line 579 ok_button_clicked(GtkButton *b, gpointer | Line 560 ok_button_clicked(GtkButton *b, gpointer |
| } | } |
| } | } |
| /* Driver */ | |
| driver_audiodevp = gtk_entry_get_text(GTK_ENTRY(driver_audio_device_entry)); | |
| renewal = FALSE; | |
| if (np2oscfg.snddrv != driver_snddrv) { | |
| np2oscfg.snddrv = driver_snddrv; | |
| renewal = TRUE; | |
| } | |
| if (strcmp(np2oscfg.audiodev, driver_audiodevp) != 0) { | |
| milstr_ncpy(np2oscfg.audiodev, driver_audiodevp, sizeof(np2oscfg.audiodev)); | |
| renewal = TRUE; | |
| } | |
| if (renewal) { | |
| sysmng_update(SYS_UPDATEOSCFG); | |
| soundrenewal = 1; | |
| } | |
| gtk_widget_destroy((GtkWidget *)d); | gtk_widget_destroy((GtkWidget *)d); |
| } | } |
| Line 684 spb_default_button_clicked(GtkButton *b, | Line 647 spb_default_button_clicked(GtkButton *b, |
| } | } |
| } | } |
| static void | |
| driver_radiobutton_clicked(GtkButton *b, gpointer d) | |
| { | |
| UNUSED(b); | |
| driver_snddrv = (int)d; | |
| } | |
| static GtkWidget * | static GtkWidget * |
| create_mixer_note(void) | create_mixer_note(void) |
| { | { |
| Line 739 create_mixer_note(void) | Line 693 create_mixer_note(void) |
| gtk_widget_show(mixer_default_button); | gtk_widget_show(mixer_default_button); |
| gtk_box_pack_end(GTK_BOX(hbox), mixer_default_button, FALSE, FALSE, 5); | gtk_box_pack_end(GTK_BOX(hbox), mixer_default_button, FALSE, FALSE, 5); |
| g_signal_connect_swapped(GTK_OBJECT(mixer_default_button), "clicked", | g_signal_connect_swapped(GTK_OBJECT(mixer_default_button), "clicked", |
| GTK_SIGNAL_FUNC(mixer_default_button_clicked), NULL); | G_CALLBACK(mixer_default_button_clicked), NULL); |
| return root_widget; | return root_widget; |
| } | } |
| Line 787 create_pc9801_14_note(void) | Line 741 create_pc9801_14_note(void) |
| gtk_widget_show(snd14_default_button); | gtk_widget_show(snd14_default_button); |
| gtk_box_pack_end(GTK_BOX(hbox), snd14_default_button, FALSE, FALSE, 5); | gtk_box_pack_end(GTK_BOX(hbox), snd14_default_button, FALSE, FALSE, 5); |
| g_signal_connect_swapped(GTK_OBJECT(snd14_default_button), "clicked", | g_signal_connect_swapped(GTK_OBJECT(snd14_default_button), "clicked", |
| GTK_SIGNAL_FUNC(snd14_default_button_clicked), NULL); | G_CALLBACK(snd14_default_button_clicked), NULL); |
| return root_widget; | return root_widget; |
| } | } |
| Line 881 create_pc9801_26_note(void) | Line 835 create_pc9801_26_note(void) |
| gtk_widget_show(snd26_default_button); | gtk_widget_show(snd26_default_button); |
| gtk_box_pack_end(GTK_BOX(hbox), snd26_default_button, FALSE, FALSE, 5); | gtk_box_pack_end(GTK_BOX(hbox), snd26_default_button, FALSE, FALSE, 5); |
| g_signal_connect_swapped(GTK_OBJECT(snd26_default_button), "clicked", | g_signal_connect_swapped(GTK_OBJECT(snd26_default_button), "clicked", |
| GTK_SIGNAL_FUNC(snd26_default_button_clicked), NULL); | G_CALLBACK(snd26_default_button_clicked), NULL); |
| return root_widget; | return root_widget; |
| } | } |
| Line 983 create_pc9801_86_note(void) | Line 937 create_pc9801_86_note(void) |
| gtk_widget_show(snd86_default_button); | gtk_widget_show(snd86_default_button); |
| gtk_box_pack_end(GTK_BOX(hbox), snd86_default_button, FALSE, FALSE, 5); | gtk_box_pack_end(GTK_BOX(hbox), snd86_default_button, FALSE, FALSE, 5); |
| g_signal_connect_swapped(GTK_OBJECT(snd86_default_button), "clicked", | g_signal_connect_swapped(GTK_OBJECT(snd86_default_button), "clicked", |
| GTK_SIGNAL_FUNC(snd86_default_button_clicked), NULL); | G_CALLBACK(snd86_default_button_clicked), NULL); |
| return root_widget; | return root_widget; |
| } | } |
| Line 1111 create_spb_note(void) | Line 1065 create_spb_note(void) |
| gtk_widget_show(spb_default_button); | gtk_widget_show(spb_default_button); |
| gtk_box_pack_end(GTK_BOX(hbox), spb_default_button, FALSE, FALSE, 5); | gtk_box_pack_end(GTK_BOX(hbox), spb_default_button, FALSE, FALSE, 5); |
| g_signal_connect_swapped(GTK_OBJECT(spb_default_button), "clicked", | g_signal_connect_swapped(GTK_OBJECT(spb_default_button), "clicked", |
| GTK_SIGNAL_FUNC(spb_default_button_clicked), NULL); | G_CALLBACK(spb_default_button_clicked), NULL); |
| return root_widget; | return root_widget; |
| } | } |
| Line 1266 create_joypad_note(void) | Line 1220 create_joypad_note(void) |
| gtk_widget_show(devlist_entry); | gtk_widget_show(devlist_entry); |
| gtk_editable_set_editable(GTK_EDITABLE(devlist_entry), FALSE); | gtk_editable_set_editable(GTK_EDITABLE(devlist_entry), FALSE); |
| g_signal_connect(GTK_OBJECT(devlist_entry), "changed", | g_signal_connect(GTK_OBJECT(devlist_entry), "changed", |
| GTK_SIGNAL_FUNC(joypad_device_changed), (gpointer)joypad_devlist_combo); | G_CALLBACK(joypad_device_changed), (gpointer)joypad_devlist_combo); |
| /* Axis */ | /* Axis */ |
| for (i = 0; i < JOY_NAXIS; ++i) { | for (i = 0; i < JOY_NAXIS; ++i) { |
| Line 1287 create_joypad_note(void) | Line 1241 create_joypad_note(void) |
| gtk_editable_set_editable(GTK_EDITABLE(axis_entry[i]), FALSE); | gtk_editable_set_editable(GTK_EDITABLE(axis_entry[i]), FALSE); |
| gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_noconnect_str); | gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_noconnect_str); |
| g_signal_connect(GTK_OBJECT(axis_entry[i]), "changed", | g_signal_connect(GTK_OBJECT(axis_entry[i]), "changed", |
| GTK_SIGNAL_FUNC(joypad_axis_entry_changed), | G_CALLBACK(joypad_axis_entry_changed), |
| (gpointer)(&joypad_axis[i])); | (gpointer)(&joypad_axis[i])); |
| } | } |
| Line 1310 create_joypad_note(void) | Line 1264 create_joypad_note(void) |
| gtk_editable_set_editable(GTK_EDITABLE(button_entry[i]), FALSE); | gtk_editable_set_editable(GTK_EDITABLE(button_entry[i]), FALSE); |
| gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_noconnect_str); | gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_noconnect_str); |
| g_signal_connect(GTK_OBJECT(button_entry[i]), "changed", | g_signal_connect(GTK_OBJECT(button_entry[i]), "changed", |
| GTK_SIGNAL_FUNC(joypad_button_entry_changed), | G_CALLBACK(joypad_button_entry_changed), |
| (gpointer)(&joypad_button[i])); | (gpointer)(&joypad_button[i])); |
| } | } |
| Line 1343 create_joypad_note(void) | Line 1297 create_joypad_note(void) |
| return root_widget; | return root_widget; |
| } | } |
| static GtkWidget * | |
| create_driver_note(void) | |
| { | |
| GtkWidget *root_widget; | |
| GtkWidget *driver_frame; | |
| GtkWidget *driver_vbox; | |
| GtkWidget *driver_radiobutton[SNDDRV_DRVMAX]; | |
| GtkWidget *audio_device_label; | |
| GtkWidget *snddrv_hbox; | |
| int i; | |
| root_widget = gtk_vbox_new(FALSE, 0); | |
| gtk_container_set_border_width(GTK_CONTAINER(root_widget), 5); | |
| gtk_widget_show(root_widget); | |
| driver_frame = gtk_frame_new("Sound driver"); | |
| gtk_widget_show(driver_frame); | |
| gtk_box_pack_start(GTK_BOX(root_widget), driver_frame, TRUE, TRUE, 0); | |
| driver_vbox = gtk_vbox_new(FALSE, 0); | |
| gtk_container_set_border_width(GTK_CONTAINER(driver_vbox), 5); | |
| gtk_widget_show(driver_vbox); | |
| gtk_container_add(GTK_CONTAINER(driver_frame), driver_vbox); | |
| for (i = 0; i < SNDDRV_DRVMAX; i++) { | |
| driver_radiobutton[i] = gtk_radio_button_new_with_label_from_widget((i > 0) ? GTK_RADIO_BUTTON(driver_radiobutton[i-1]) : NULL, driver_name[i]); | |
| gtk_widget_show(driver_radiobutton[i]); | |
| gtk_box_pack_start(GTK_BOX(driver_vbox), driver_radiobutton[i], TRUE, FALSE, 0); | |
| g_signal_connect(GTK_OBJECT(driver_radiobutton[i]), "clicked", | |
| GTK_SIGNAL_FUNC(driver_radiobutton_clicked), (gpointer)i); | |
| } | |
| #if !defined(USE_NETBSDAUDIO) | |
| gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_NETBSD], FALSE); | |
| #endif | |
| #if !defined(USE_OSSAUDIO) | |
| gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_OSS], FALSE); | |
| #endif | |
| #if !defined(USE_ESDAUDIO) | |
| gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_ESD], FALSE); | |
| #endif | |
| #if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) | |
| gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_SDL], FALSE); | |
| #endif | |
| switch (np2oscfg.snddrv) { | |
| case SNDDRV_NODRV: | |
| #if defined(USE_NETBSDAUDIO) | |
| case SNDDRV_NETBSD: | |
| #endif | |
| #if defined(USE_OSSAUDIO) | |
| case SNDDRV_OSS: | |
| #endif | |
| #if defined(USE_ESDAUDIO) | |
| case SNDDRV_ESD: | |
| #endif | |
| #if defined(USE_SDLAUDIO) || defined(USE_SDLMIXER) | |
| case SNDDRV_SDL: | |
| #endif | |
| g_signal_emit_by_name(GTK_OBJECT(driver_radiobutton[np2oscfg.snddrv]), "clicked"); | |
| break; | |
| #if !defined(USE_NETBSDAUDIO) | |
| case SNDDRV_NETBSD: | |
| #endif | |
| #if !defined(USE_OSSAUDIO) | |
| case SNDDRV_OSS: | |
| #endif | |
| #if !defined(USE_ESDAUDIO) | |
| case SNDDRV_ESD: | |
| #endif | |
| #if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) | |
| case SNDDRV_SDL: | |
| #endif | |
| case SNDDRV_DRVMAX: | |
| default: | |
| np2oscfg.snddrv = SNDDRV_NODRV; | |
| sysmng_update(SYS_UPDATEOSCFG); | |
| break; | |
| } | |
| snddrv_hbox = gtk_hbox_new(FALSE, 0); | |
| gtk_container_set_border_width(GTK_CONTAINER(snddrv_hbox), 5); | |
| gtk_widget_show(snddrv_hbox); | |
| gtk_box_pack_start(GTK_BOX(root_widget), snddrv_hbox, FALSE, FALSE, 0); | |
| audio_device_label = gtk_label_new("Sound device"); | |
| gtk_widget_show(audio_device_label); | |
| gtk_box_pack_start(GTK_BOX(snddrv_hbox), audio_device_label, FALSE, FALSE, 3); | |
| driver_audio_device_entry = gtk_entry_new(); | |
| gtk_widget_show(driver_audio_device_entry); | |
| gtk_entry_set_text(GTK_ENTRY(driver_audio_device_entry), np2oscfg.audiodev); | |
| gtk_box_pack_start(GTK_BOX(snddrv_hbox), driver_audio_device_entry, TRUE, TRUE, 3); | |
| return root_widget; | |
| } | |
| void | void |
| create_sound_dialog(void) | create_sound_dialog(void) |
| { | { |
| Line 1452 create_sound_dialog(void) | Line 1309 create_sound_dialog(void) |
| GtkWidget *pc9801_86_note; | GtkWidget *pc9801_86_note; |
| GtkWidget *spb_note; | GtkWidget *spb_note; |
| GtkWidget *joypad_note; | GtkWidget *joypad_note; |
| GtkWidget *driver_note; | |
| GtkWidget *confirm_widget; | GtkWidget *confirm_widget; |
| GtkWidget *ok_button; | GtkWidget *ok_button; |
| GtkWidget *cancel_button; | GtkWidget *cancel_button; |
| Line 1466 create_sound_dialog(void) | Line 1322 create_sound_dialog(void) |
| gtk_window_set_resizable(GTK_WINDOW(sound_dialog), FALSE); | gtk_window_set_resizable(GTK_WINDOW(sound_dialog), FALSE); |
| g_signal_connect(GTK_OBJECT(sound_dialog), "destroy", | g_signal_connect(GTK_OBJECT(sound_dialog), "destroy", |
| GTK_SIGNAL_FUNC(dialog_destroy), NULL); | G_CALLBACK(dialog_destroy), NULL); |
| main_vbox = gtk_vbox_new(FALSE, 0); | main_vbox = gtk_vbox_new(FALSE, 0); |
| gtk_widget_show(main_vbox); | gtk_widget_show(main_vbox); |
| Line 1500 create_sound_dialog(void) | Line 1356 create_sound_dialog(void) |
| joypad_note = create_joypad_note(); | joypad_note = create_joypad_note(); |
| gtk_notebook_append_page(GTK_NOTEBOOK(notebook), joypad_note, gtk_label_new("JoyPad")); | gtk_notebook_append_page(GTK_NOTEBOOK(notebook), joypad_note, gtk_label_new("JoyPad")); |
| /* "Driver" note */ | |
| driver_note = create_driver_note(); | |
| gtk_notebook_append_page(GTK_NOTEBOOK(notebook), driver_note, gtk_label_new("Driver")); | |
| /* | /* |
| * OK, Cancel button | * OK, Cancel button |
| */ | */ |
| Line 1516 create_sound_dialog(void) | Line 1368 create_sound_dialog(void) |
| gtk_box_pack_end(GTK_BOX(confirm_widget), cancel_button, FALSE, FALSE, 0); | gtk_box_pack_end(GTK_BOX(confirm_widget), cancel_button, FALSE, FALSE, 0); |
| GTK_WIDGET_SET_FLAGS(cancel_button, GTK_CAN_DEFAULT); | GTK_WIDGET_SET_FLAGS(cancel_button, GTK_CAN_DEFAULT); |
| g_signal_connect_swapped(GTK_OBJECT(cancel_button), "clicked", | g_signal_connect_swapped(GTK_OBJECT(cancel_button), "clicked", |
| GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(sound_dialog)); | G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(sound_dialog)); |
| ok_button = gtk_button_new_from_stock(GTK_STOCK_OK); | ok_button = gtk_button_new_from_stock(GTK_STOCK_OK); |
| gtk_widget_show(ok_button); | gtk_widget_show(ok_button); |
| Line 1524 create_sound_dialog(void) | Line 1376 create_sound_dialog(void) |
| GTK_WIDGET_SET_FLAGS(ok_button, GTK_CAN_DEFAULT); | GTK_WIDGET_SET_FLAGS(ok_button, GTK_CAN_DEFAULT); |
| GTK_WIDGET_SET_FLAGS(ok_button, GTK_HAS_DEFAULT); | GTK_WIDGET_SET_FLAGS(ok_button, GTK_HAS_DEFAULT); |
| g_signal_connect(GTK_OBJECT(ok_button), "clicked", | g_signal_connect(GTK_OBJECT(ok_button), "clicked", |
| GTK_SIGNAL_FUNC(ok_button_clicked), (gpointer)sound_dialog); | G_CALLBACK(ok_button_clicked), (gpointer)sound_dialog); |
| gtk_widget_grab_default(ok_button); | gtk_widget_grab_default(ok_button); |
| gtk_widget_show_all(sound_dialog); | gtk_widget_show_all(sound_dialog); |