Diff for /np2/x11/gtk2/dialog_sound.c between versions 1.2 and 1.6

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);

Removed from v.1.2  
changed lines
  Added in v.1.6


RetroPC.NET-CVS <cvs@retropc.net>