|
|
| version 1.1, 2004/07/15 14:24:33 | version 1.13, 2012/01/23 05:12:35 |
|---|---|
| Line 1 | Line 1 |
| /* $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 229 static GtkObject *spb_vr_level_adj; | Line 227 static GtkObject *spb_vr_level_adj; |
| /* | /* |
| * JoyPad | |
| */ | |
| static const char *joypad_nodevice_str = "No device"; | |
| static const char *joypad_noconnect_str = "N/C"; | |
| static const char *joypad_num_str[256] = { | |
| "0", "1", "2", "3", "4", "5", "6", "7", | |
| "8", "9", "10", "11", "12", "13", "14", "15", | |
| "16", "17", "18", "19", "20", "21", "22", "23", | |
| "24", "25", "26", "27", "28", "29", "30", "31", | |
| "32", "33", "34", "35", "36", "37", "38", "39", | |
| "40", "41", "42", "43", "44", "45", "46", "47", | |
| "48", "49", "50", "51", "52", "53", "54", "55", | |
| "56", "57", "58", "59", "60", "61", "62", "63", | |
| "64", "65", "66", "67", "68", "69", "70", "71", | |
| "72", "73", "74", "75", "76", "77", "78", "79", | |
| "80", "81", "82", "83", "84", "85", "86", "87", | |
| "88", "89", "90", "91", "92", "93", "94", "95", | |
| "96", "97", "98", "99", "100", "101", "102", "103", | |
| "104", "105", "106", "107", "108", "109", "110", "111", | |
| "112", "113", "114", "115", "116", "117", "118", "119", | |
| "120", "121", "122", "123", "124", "125", "126", "127", | |
| "128", "129", "130", "131", "132", "133", "134", "135", | |
| "136", "137", "138", "139", "140", "141", "142", "143", | |
| "144", "145", "146", "147", "148", "149", "150", "151", | |
| "152", "153", "154", "155", "156", "157", "158", "159", | |
| "160", "161", "162", "163", "164", "165", "166", "167", | |
| "168", "169", "170", "171", "172", "173", "174", "175", | |
| "176", "177", "178", "179", "180", "181", "182", "183", | |
| "184", "185", "186", "187", "188", "189", "190", "191", | |
| "192", "193", "194", "195", "196", "197", "198", "199", | |
| "200", "201", "202", "203", "204", "205", "206", "207", | |
| "208", "209", "210", "211", "212", "213", "214", "215", | |
| "216", "217", "218", "219", "220", "221", "222", "223", | |
| "224", "225", "226", "227", "228", "229", "230", "231", | |
| "232", "233", "234", "235", "236", "237", "238", "239", | |
| "240", "241", "242", "243", "244", "245", "246", "247", | |
| "248", "249", "250", "251", "252", "253", "254", "255", | |
| }; | |
| static joymng_devinfo_t **joypad_devlist; | |
| static GtkWidget *joypad_use_checkbutton[1]; | |
| static GtkWidget *joypad_devlist_combo; | |
| static GtkWidget *joypad_axis_combo[JOY_NAXIS]; | |
| static GtkWidget *joypad_button_combo[JOY_NBUTTON]; | |
| static char joypad_devname[MAX_PATH]; | |
| static UINT8 joypad_axis[JOY_NAXIS]; | |
| static UINT8 joypad_button[JOY_NBUTTON]; | |
| /* | |
| * Driver | * Driver |
| */ | */ |
| static const char *driver_name[SNDDRV_DRVMAX] = { | static const char *driver_name[SNDDRV_DRVMAX] = { |
| "None", | "None", |
| "NetBSD", | |
| "OSS", | |
| "EsounD", | |
| "SDL", | "SDL", |
| }; | }; |
| static GtkWidget *driver_audio_device_entry; | |
| static int driver_snddrv; | static int driver_snddrv; |
| Line 276 ok_button_clicked(GtkButton *b, gpointer | Line 321 ok_button_clicked(GtkButton *b, gpointer |
| UINT8 spb_x; | UINT8 spb_x; |
| UINT8 spbopt, spbopt_mask; | UINT8 spbopt, spbopt_mask; |
| /* Driver */ | /* JoyPad */ |
| const gchar *driver_audiodevp; | UINT8 joypad[1]; |
| gint joypad_device_index; | |
| /* common */ | /* common */ |
| char buf[32]; | |
| int i; | int i; |
| BOOL renewal; | BOOL renewal; |
| UNUSED(b); | |
| /* Mixer */ | /* Mixer */ |
| renewal = FALSE; | renewal = FALSE; |
| for (i = 0; i < NELEMENTS(mixer_vol_tbl); i++) { | for (i = 0; i < NELEMENTS(mixer_vol_tbl); i++) { |
| Line 323 ok_button_clicked(GtkButton *b, gpointer | Line 368 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 476 ok_button_clicked(GtkButton *b, gpointer | Line 521 ok_button_clicked(GtkButton *b, gpointer |
| sysmng_update(SYS_UPDATEOSCFG); | sysmng_update(SYS_UPDATEOSCFG); |
| } | } |
| /* Driver */ | /* JoyPad */ |
| driver_audiodevp = gtk_entry_get_text(GTK_ENTRY(driver_audio_device_entry)); | if (!(np2oscfg.JOYPAD1 & 2)) { |
| joypad[0] = GTK_TOGGLE_BUTTON(joypad_use_checkbutton[0])->active; | |
| renewal = FALSE; | |
| if ((np2oscfg.JOYPAD1 ^ joypad[0]) & 1) { | |
| np2oscfg.JOYPAD1 = joypad[0]; | |
| renewal = TRUE; | |
| } | |
| joypad_device_index = 0; | |
| if (joypad_devlist == NULL) { | |
| for (i = 0; joypad_devlist[i] != NULL; ++i) { | |
| if (strcmp(joypad_devname, joypad_devlist[i]->devname) == 0) { | |
| joypad_device_index = joypad_devlist[i]->devindex; | |
| break; | |
| } | |
| } | |
| } | |
| g_snprintf(buf, sizeof(buf), "%d", joypad_device_index); | |
| if (strcmp(np2oscfg.JOYDEV[0], buf) != 0) { | |
| milstr_ncpy(np2oscfg.JOYDEV[0], buf, sizeof(np2oscfg.JOYDEV[0])); | |
| renewal = TRUE; | |
| } | |
| for (i = 0; i < JOY_NAXIS; ++i) { | |
| if (np2oscfg.JOYAXISMAP[0][i] != joypad_axis[i]) { | |
| memcpy(np2oscfg.JOYAXISMAP[0], joypad_axis, sizeof(np2oscfg.JOYAXISMAP[0])); | |
| renewal = TRUE; | |
| break; | |
| } | |
| } | |
| for (i = 0; i < JOY_NBUTTON; ++i) { | |
| if (np2oscfg.JOYBTNMAP[0][i] != joypad_button[i]) { | |
| memcpy(np2oscfg.JOYBTNMAP[0], joypad_button, sizeof(np2oscfg.JOYBTNMAP[0])); | |
| renewal = TRUE; | |
| break; | |
| } | |
| } | |
| if (renewal) { | |
| joymng_initialize(); | |
| sysmng_update(SYS_UPDATEOSCFG); | |
| } | |
| } | |
| /* Driver */ | |
| renewal = FALSE; | renewal = FALSE; |
| if (np2oscfg.snddrv != driver_snddrv) { | if (np2oscfg.snddrv != driver_snddrv) { |
| np2oscfg.snddrv = driver_snddrv; | np2oscfg.snddrv = driver_snddrv; |
| renewal = TRUE; | renewal = TRUE; |
| } | } |
| if (strcmp(np2oscfg.audiodev, driver_audiodevp) != 0) { | |
| milstr_ncpy(np2oscfg.audiodev, driver_audiodevp, sizeof(np2oscfg.audiodev)); | |
| renewal = TRUE; | |
| } | |
| if (renewal) { | if (renewal) { |
| sysmng_update(SYS_UPDATEOSCFG); | sysmng_update(SYS_UPDATEOSCFG); |
| Line 501 static void | Line 587 static void |
| dialog_destroy(GtkWidget *w, GtkWidget **wp) | dialog_destroy(GtkWidget *w, GtkWidget **wp) |
| { | { |
| UNUSED(wp); | |
| install_idle_process(); | install_idle_process(); |
| gtk_widget_destroy(w); | gtk_widget_destroy(w); |
| } | } |
| Line 512 mixer_default_button_clicked(GtkButton * | Line 596 mixer_default_button_clicked(GtkButton * |
| { | { |
| int i; | int i; |
| UNUSED(b); | |
| UNUSED(d); | |
| for (i = 0; i < NELEMENTS(mixer_vol_tbl); i++) { | for (i = 0; i < NELEMENTS(mixer_vol_tbl); i++) { |
| gtk_adjustment_set_value(GTK_ADJUSTMENT(mixer_adj[i]), 64.0); | gtk_adjustment_set_value(GTK_ADJUSTMENT(mixer_adj[i]), 64.0); |
| } | } |
| Line 528 snd14_default_button_clicked(GtkButton * | Line 609 snd14_default_button_clicked(GtkButton * |
| }; | }; |
| int i; | int i; |
| UNUSED(b); | |
| UNUSED(d); | |
| for (i = 0; i < NELEMENTS(snd14_adj); i++) { | for (i = 0; i < NELEMENTS(snd14_adj); i++) { |
| gtk_adjustment_set_value(GTK_ADJUSTMENT(snd14_adj[i]), defval[i]); | gtk_adjustment_set_value(GTK_ADJUSTMENT(snd14_adj[i]), defval[i]); |
| } | } |
| Line 540 static void | Line 618 static void |
| snd26_default_button_clicked(GtkButton *b, gpointer d) | snd26_default_button_clicked(GtkButton *b, gpointer d) |
| { | { |
| UNUSED(b); | |
| UNUSED(d); | |
| gtk_entry_set_text(GTK_ENTRY(snd26_ioport_entry), "0188"); | gtk_entry_set_text(GTK_ENTRY(snd26_ioport_entry), "0188"); |
| gtk_entry_set_text(GTK_ENTRY(snd26_int_entry), "INT5"); | gtk_entry_set_text(GTK_ENTRY(snd26_int_entry), "INT5"); |
| gtk_entry_set_text(GTK_ENTRY(snd26_romaddr_entry), "CC000"); | gtk_entry_set_text(GTK_ENTRY(snd26_romaddr_entry), "CC000"); |
| Line 552 static void | Line 627 static void |
| snd86_default_button_clicked(GtkButton *b, gpointer d) | snd86_default_button_clicked(GtkButton *b, gpointer d) |
| { | { |
| UNUSED(b); | |
| UNUSED(d); | |
| gtk_entry_set_text(GTK_ENTRY(snd86_ioport_entry), "0188"); | gtk_entry_set_text(GTK_ENTRY(snd86_ioport_entry), "0188"); |
| gtk_entry_set_text(GTK_ENTRY(snd86_int_entry), "INT5"); | gtk_entry_set_text(GTK_ENTRY(snd86_int_entry), "INT5"); |
| gtk_entry_set_text(GTK_ENTRY(snd86_soundid_entry), "4x"); | gtk_entry_set_text(GTK_ENTRY(snd86_soundid_entry), "4x"); |
| Line 569 spb_default_button_clicked(GtkButton *b, | Line 641 spb_default_button_clicked(GtkButton *b, |
| { | { |
| int i; | int i; |
| UNUSED(b); | |
| UNUSED(d); | |
| gtk_entry_set_text(GTK_ENTRY(spb_ioport_entry), "0188"); | gtk_entry_set_text(GTK_ENTRY(spb_ioport_entry), "0188"); |
| gtk_entry_set_text(GTK_ENTRY(spb_int_entry), "INT5"); | gtk_entry_set_text(GTK_ENTRY(spb_int_entry), "INT5"); |
| gtk_entry_set_text(GTK_ENTRY(spb_romaddr_entry), "CC000"); | gtk_entry_set_text(GTK_ENTRY(spb_romaddr_entry), "CC000"); |
| Line 585 static void | Line 654 static void |
| driver_radiobutton_clicked(GtkButton *b, gpointer d) | driver_radiobutton_clicked(GtkButton *b, gpointer d) |
| { | { |
| UNUSED(b); | driver_snddrv = GPOINTER_TO_UINT(d); |
| driver_snddrv = (int)d; | |
| } | } |
| static GtkWidget * | static GtkWidget * |
| Line 636 create_mixer_note(void) | Line 703 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 684 create_pc9801_14_note(void) | Line 751 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 778 create_pc9801_26_note(void) | Line 845 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 880 create_pc9801_86_note(void) | Line 947 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 1008 create_spb_note(void) | Line 1075 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; | |
| } | |
| static void | |
| joypad_device_changed(GtkEditable *e, gpointer d) | |
| { | |
| GtkWidget *axis_entry[JOY_NAXIS]; | |
| GtkWidget *button_entry[JOY_NBUTTON]; | |
| const gchar *dvname; | |
| int drv; | |
| int i, j; | |
| dvname = gtk_entry_get_text(GTK_ENTRY(e)); | |
| if ((joypad_devlist == NULL) | |
| || (dvname == NULL) | |
| || (strcmp(dvname, joypad_nodevice_str) == 0)) { | |
| milstr_ncpy(joypad_devname, joypad_nodevice_str, sizeof(joypad_devname)); | |
| return; | |
| } | |
| for (drv = 0; joypad_devlist[drv] != NULL; ++drv) { | |
| if (strcmp(dvname, joypad_devlist[drv]->devname) == 0) { | |
| break; | |
| } | |
| } | |
| if (joypad_devlist[drv] == NULL) { | |
| drv = 0; | |
| if (joypad_devlist[drv] == NULL) { | |
| milstr_ncpy(joypad_devname, joypad_nodevice_str, sizeof(joypad_devname)); | |
| return; | |
| } | |
| } | |
| milstr_ncpy(joypad_devname, joypad_devlist[drv]->devname, sizeof(joypad_devname)); | |
| /* Axis */ | |
| for (i = 0; i < JOY_NAXIS; ++i) { | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_axis_combo[i]), joypad_noconnect_str); | |
| for (j = 0; j < joypad_devlist[drv]->naxis; j++) { | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_axis_combo[i]), joypad_num_str[j]); | |
| } | |
| axis_entry[i] = GTK_BIN(joypad_axis_combo[i])->child; | |
| gtk_widget_show(axis_entry[i]); | |
| gtk_editable_set_editable(GTK_EDITABLE(axis_entry[i]), FALSE); | |
| if (np2oscfg.JOYAXISMAP[0][i] < joypad_devlist[drv]->naxis) { | |
| gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_num_str[np2oscfg.JOYAXISMAP[0][i]]); | |
| } else { | |
| gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_noconnect_str); | |
| } | |
| } | |
| /* Button */ | |
| for (i = 0; i < JOY_NBUTTON; ++i) { | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_button_combo[i]), joypad_noconnect_str); | |
| for (j = 0; j < joypad_devlist[drv]->nbutton; j++) { | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_button_combo[i]), joypad_num_str[j]); | |
| } | |
| button_entry[i] = GTK_BIN(joypad_button_combo[i])->child; | |
| gtk_widget_show(button_entry[i]); | |
| gtk_editable_set_editable(GTK_EDITABLE(button_entry[i]), FALSE); | |
| if (np2oscfg.JOYBTNMAP[0][i] < joypad_devlist[drv]->nbutton) { | |
| gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_num_str[np2oscfg.JOYBTNMAP[0][i]]); | |
| } else { | |
| gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_noconnect_str); | |
| } | |
| } | |
| } | |
| static void | |
| joypad_axis_entry_changed(GtkEditable *e, gpointer d) | |
| { | |
| const gchar *str = gtk_entry_get_text(GTK_ENTRY(e)); | |
| UINT8 *p = (UINT8 *)d; | |
| if (strcmp(str, joypad_noconnect_str) == 0) { | |
| *p = JOY_AXIS_INVALID; | |
| } else { | |
| *p = milstr_solveINT(str); | |
| } | |
| } | |
| static void | |
| joypad_button_entry_changed(GtkEditable *e, gpointer d) | |
| { | |
| const gchar *str = gtk_entry_get_text(GTK_ENTRY(e)); | |
| UINT8 *p = (UINT8 *)d; | |
| if (strcmp(str, joypad_noconnect_str) == 0) { | |
| *p = JOY_BUTTON_INVALID; | |
| } else { | |
| *p = milstr_solveINT(str); | |
| } | |
| } | |
| static GtkWidget * | |
| create_joypad_note(void) | |
| { | |
| char buf[32]; | |
| GtkWidget *root_widget; | |
| GtkWidget *table; | |
| GtkWidget *devlist_label; | |
| GtkWidget *devlist_entry; | |
| GtkWidget *axis_label[JOY_NAXIS]; | |
| GtkWidget *axis_entry[JOY_NAXIS]; | |
| GtkWidget *button_label[JOY_NBUTTON]; | |
| GtkWidget *button_entry[JOY_NBUTTON]; | |
| int ndrv, drv; | |
| int i; | |
| root_widget = gtk_vbox_new(FALSE, 0); | |
| gtk_container_set_border_width(GTK_CONTAINER(root_widget), 5); | |
| gtk_widget_show(root_widget); | |
| table = gtk_table_new(3, 8, FALSE); | |
| gtk_table_set_row_spacings(GTK_TABLE(table), 3); | |
| gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| gtk_box_pack_start(GTK_BOX(root_widget), table, FALSE, FALSE, 0); | |
| gtk_widget_show(table); | |
| /* Use JoyPad-1 */ | |
| joypad_use_checkbutton[0] = gtk_check_button_new_with_label("Use JoyPad-1"); | |
| gtk_widget_show(joypad_use_checkbutton[0]); | |
| gtk_table_attach_defaults(GTK_TABLE(table), joypad_use_checkbutton[0], 0, 3, 0, 1); | |
| /* Device */ | |
| devlist_label = gtk_label_new("Device"); | |
| gtk_widget_show(devlist_label); | |
| gtk_table_attach_defaults(GTK_TABLE(table), devlist_label, 0, 1, 1, 2); | |
| joypad_devlist_combo = gtk_combo_box_entry_new_text(); | |
| gtk_widget_show(joypad_devlist_combo); | |
| gtk_table_attach_defaults(GTK_TABLE(table), joypad_devlist_combo, 1, 3, 1, 2); | |
| joypad_devlist = joymng_get_devinfo_list(); | |
| if (joypad_devlist != NULL) { | |
| for (i = 0; joypad_devlist[i] != NULL; ++i) { | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_devlist_combo), joypad_devlist[i]->devname); | |
| } | |
| ndrv = i; | |
| } else { | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_devlist_combo), joypad_nodevice_str); | |
| ndrv = 0; | |
| } | |
| devlist_entry = GTK_BIN(joypad_devlist_combo)->child; | |
| gtk_widget_show(devlist_entry); | |
| gtk_editable_set_editable(GTK_EDITABLE(devlist_entry), FALSE); | |
| g_signal_connect(GTK_OBJECT(devlist_entry), "changed", | |
| G_CALLBACK(joypad_device_changed), (gpointer)joypad_devlist_combo); | |
| /* Axis */ | |
| for (i = 0; i < JOY_NAXIS; ++i) { | |
| g_snprintf(buf, sizeof(buf), "%c axis", 'X' + i); | |
| axis_label[i] = gtk_label_new(buf); | |
| gtk_widget_show(axis_label[i]); | |
| gtk_table_attach_defaults(GTK_TABLE(table), axis_label[i], 0, 1, 2+i, 3+i); | |
| joypad_axis_combo[i] = gtk_combo_box_entry_new_text(); | |
| gtk_widget_show(joypad_axis_combo[i]); | |
| gtk_table_attach_defaults(GTK_TABLE(table), joypad_axis_combo[i], 1, 2, 2+i, 3+i); | |
| gtk_widget_set_size_request(joypad_axis_combo[i], 48, -1); | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_axis_combo[i]), joypad_noconnect_str); | |
| axis_entry[i] = GTK_BIN(joypad_axis_combo[i])->child; | |
| gtk_widget_show(axis_entry[i]); | |
| gtk_editable_set_editable(GTK_EDITABLE(axis_entry[i]), FALSE); | |
| gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_noconnect_str); | |
| g_signal_connect(GTK_OBJECT(axis_entry[i]), "changed", | |
| G_CALLBACK(joypad_axis_entry_changed), | |
| (gpointer)(&joypad_axis[i])); | |
| } | |
| /* Button */ | |
| for (i = 0; i < JOY_NBUTTON; ++i) { | |
| g_snprintf(buf, sizeof(buf), "%sButton%d", (i >= JOY_NBUTTON / 2) ? "Rapid " : "", i % 2); | |
| button_label[i] = gtk_label_new(buf); | |
| gtk_widget_show(button_label[i]); | |
| gtk_table_attach_defaults(GTK_TABLE(table), button_label[i], 0, 1, 4+i, 5+i); | |
| joypad_button_combo[i] = gtk_combo_box_entry_new_text(); | |
| gtk_widget_show(joypad_button_combo[i]); | |
| gtk_table_attach_defaults(GTK_TABLE(table), joypad_button_combo[i], 1, 2, 4+i, 5+i); | |
| gtk_widget_set_size_request(joypad_button_combo[i], 48, -1); | |
| gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_button_combo[i]), joypad_noconnect_str); | |
| button_entry[i] = GTK_BIN(joypad_button_combo[i])->child; | |
| gtk_widget_show(button_entry[i]); | |
| gtk_editable_set_editable(GTK_EDITABLE(button_entry[i]), FALSE); | |
| gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_noconnect_str); | |
| g_signal_connect(GTK_OBJECT(button_entry[i]), "changed", | |
| G_CALLBACK(joypad_button_entry_changed), | |
| (gpointer)(&joypad_button[i])); | |
| } | |
| /* no joystick device */ | |
| if ((np2oscfg.JOYPAD1 & 2) && (joypad_devlist == NULL)) { | |
| gtk_widget_set_sensitive(joypad_use_checkbutton[0], FALSE); | |
| gtk_widget_set_sensitive(joypad_devlist_combo, FALSE); | |
| for (i = 0; i < JOY_NAXIS; ++i) { | |
| gtk_widget_set_sensitive(joypad_axis_combo[i], FALSE); | |
| } | |
| for (i = 0; i < JOY_NBUTTON; ++i) { | |
| gtk_widget_set_sensitive(joypad_button_combo[i], FALSE); | |
| } | |
| } | |
| /* update status */ | |
| if (joypad_devlist != NULL) { | |
| drv = milstr_solveINT(np2oscfg.JOYDEV[0]); | |
| if (drv < 0 || drv >= ndrv) { | |
| drv = 0; | |
| } | |
| gtk_entry_set_text(GTK_ENTRY(devlist_entry), joypad_devlist[drv]->devname); | |
| } else { | |
| gtk_entry_set_text(GTK_ENTRY(devlist_entry), joypad_nodevice_str); | |
| } | |
| if (np2oscfg.JOYPAD1 & 1) { | |
| g_signal_emit_by_name(GTK_OBJECT(joypad_use_checkbutton[0]), "clicked"); | |
| } | |
| return root_widget; | return root_widget; |
| } | } |
| Line 1020 create_driver_note(void) | Line 1312 create_driver_note(void) |
| GtkWidget *driver_frame; | GtkWidget *driver_frame; |
| GtkWidget *driver_vbox; | GtkWidget *driver_vbox; |
| GtkWidget *driver_radiobutton[SNDDRV_DRVMAX]; | GtkWidget *driver_radiobutton[SNDDRV_DRVMAX]; |
| GtkWidget *audio_device_label; | |
| GtkWidget *snddrv_hbox; | GtkWidget *snddrv_hbox; |
| int i; | int i; |
| Line 1038 create_driver_note(void) | Line 1329 create_driver_note(void) |
| gtk_container_add(GTK_CONTAINER(driver_frame), driver_vbox); | gtk_container_add(GTK_CONTAINER(driver_frame), driver_vbox); |
| for (i = 0; i < SNDDRV_DRVMAX; i++) { | 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]); | 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_widget_show(driver_radiobutton[i]); |
| gtk_box_pack_start(GTK_BOX(driver_vbox), driver_radiobutton[i], TRUE, FALSE, 0); | gtk_box_pack_start(GTK_BOX(driver_vbox), driver_radiobutton[i], TRUE, FALSE, 0); |
| g_signal_connect(GTK_OBJECT(driver_radiobutton[i]), "clicked", | g_signal_connect(GTK_OBJECT(driver_radiobutton[i]), "clicked", |
| GTK_SIGNAL_FUNC(driver_radiobutton_clicked), (gpointer)i); | G_CALLBACK(driver_radiobutton_clicked), GINT_TO_POINTER(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) | #if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) |
| gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_SDL], FALSE); | gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_SDL], FALSE); |
| #endif | #endif |
| switch (np2oscfg.snddrv) { | switch (np2oscfg.snddrv) { |
| case SNDDRV_NODRV: | 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) | #if defined(USE_SDLAUDIO) || defined(USE_SDLMIXER) |
| case SNDDRV_SDL: | case SNDDRV_SDL: |
| #endif | #endif |
| g_signal_emit_by_name(GTK_OBJECT(driver_radiobutton[np2oscfg.snddrv]), "clicked"); | g_signal_emit_by_name(GTK_OBJECT(driver_radiobutton[np2oscfg.snddrv]), "clicked"); |
| break; | 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) | #if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) |
| case SNDDRV_SDL: | case SNDDRV_SDL: |
| #endif | #endif |
| Line 1098 create_driver_note(void) | Line 1362 create_driver_note(void) |
| gtk_widget_show(snddrv_hbox); | gtk_widget_show(snddrv_hbox); |
| gtk_box_pack_start(GTK_BOX(root_widget), snddrv_hbox, FALSE, FALSE, 0); | 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; | return root_widget; |
| } | } |
| Line 1121 create_sound_dialog(void) | Line 1376 create_sound_dialog(void) |
| GtkWidget *pc9801_26_note; | GtkWidget *pc9801_26_note; |
| GtkWidget *pc9801_86_note; | GtkWidget *pc9801_86_note; |
| GtkWidget *spb_note; | GtkWidget *spb_note; |
| GtkWidget *joypad_note; | |
| GtkWidget *driver_note; | GtkWidget *driver_note; |
| GtkWidget *confirm_widget; | GtkWidget *confirm_widget; |
| GtkWidget *ok_button; | GtkWidget *ok_button; |
| Line 1135 create_sound_dialog(void) | Line 1391 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 1165 create_sound_dialog(void) | Line 1421 create_sound_dialog(void) |
| spb_note = create_spb_note(); | spb_note = create_spb_note(); |
| gtk_notebook_append_page(GTK_NOTEBOOK(notebook), spb_note, gtk_label_new("SPB")); | gtk_notebook_append_page(GTK_NOTEBOOK(notebook), spb_note, gtk_label_new("SPB")); |
| /* "JoyPad" note */ | |
| joypad_note = create_joypad_note(); | |
| gtk_notebook_append_page(GTK_NOTEBOOK(notebook), joypad_note, gtk_label_new("JoyPad")); | |
| /* "Driver" note */ | /* "Driver" note */ |
| driver_note = create_driver_note(); | driver_note = create_driver_note(); |
| gtk_notebook_append_page(GTK_NOTEBOOK(notebook), driver_note, gtk_label_new("Driver")); | gtk_notebook_append_page(GTK_NOTEBOOK(notebook), driver_note, gtk_label_new("Driver")); |
| Line 1179 create_sound_dialog(void) | Line 1439 create_sound_dialog(void) |
| cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); |
| gtk_widget_show(cancel_button); | gtk_widget_show(cancel_button); |
| 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_can_default(cancel_button, TRUE); |
| 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); |
| gtk_box_pack_end(GTK_BOX(confirm_widget), ok_button, FALSE, FALSE, 0); | gtk_box_pack_end(GTK_BOX(confirm_widget), ok_button, FALSE, FALSE, 0); |
| GTK_WIDGET_SET_FLAGS(ok_button, GTK_CAN_DEFAULT); | gtk_widget_set_can_default(ok_button, TRUE); |
| GTK_WIDGET_SET_FLAGS(ok_button, GTK_HAS_DEFAULT); | gtk_widget_has_default(ok_button); |
| 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); |