Don't use external players on Windows
This commit is contained in:
parent
584dc6a626
commit
01f24aae07
|
@ -2226,14 +2226,12 @@ sound_play (const char *file, gboolean quiet, gboolean hexchat_beep)
|
||||||
char *buf;
|
char *buf;
|
||||||
char *wavfile;
|
char *wavfile;
|
||||||
char *cmd;
|
char *cmd;
|
||||||
#if 0
|
|
||||||
LPSTR lpRes;
|
|
||||||
HANDLE hResInfo, hRes;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* the pevents GUI editor triggers this after removing a soundfile */
|
/* the pevents GUI editor triggers this after removing a soundfile */
|
||||||
if (!file[0])
|
if (!file[0])
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
/* check for fullpath; also use full path if hexchat_beep is TRUE, which should *only* happen when invoked by fe_beep() */
|
/* check for fullpath; also use full path if hexchat_beep is TRUE, which should *only* happen when invoked by fe_beep() */
|
||||||
|
@ -2251,48 +2249,19 @@ sound_play (const char *file, gboolean quiet, gboolean hexchat_beep)
|
||||||
|
|
||||||
if (g_access (wavfile, R_OK) == 0)
|
if (g_access (wavfile, R_OK) == 0)
|
||||||
{
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
PlaySound (wavfile, NULL, SND_NODEFAULT|SND_FILENAME|SND_ASYNC);
|
||||||
|
#else
|
||||||
cmd = sound_find_command ();
|
cmd = sound_find_command ();
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
if (cmd == NULL || strcmp (cmd, "esdplay") == 0)
|
|
||||||
{
|
|
||||||
PlaySound (wavfile, NULL, SND_NODEFAULT|SND_FILENAME|SND_ASYNC);
|
|
||||||
#if 0 /* this would require the wav file to be added to the executable as resource */
|
|
||||||
hResInfo = FindResource (NULL, file_fs, "WAVE");
|
|
||||||
if (hResInfo != NULL)
|
|
||||||
{
|
|
||||||
/* load the WAVE resource */
|
|
||||||
hRes = LoadResource (NULL, hResInfo);
|
|
||||||
if (hRes != NULL)
|
|
||||||
{
|
|
||||||
/* lock the WAVE resource and play it */
|
|
||||||
lpRes = LockResource(hRes);
|
|
||||||
if (lpRes != NULL)
|
|
||||||
{
|
|
||||||
sndPlaySound (lpRes, SND_MEMORY | SND_NODEFAULT | SND_FILENAME | SND_ASYNC);
|
|
||||||
UnlockResource (hRes);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* free the WAVE resource */
|
|
||||||
FreeResource (hRes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
if (cmd)
|
|
||||||
{
|
|
||||||
buf = g_strdup_printf ("%s \"%s\"", cmd, wavfile);
|
|
||||||
hexchat_exec (buf);
|
|
||||||
g_free (buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cmd)
|
if (cmd)
|
||||||
|
{
|
||||||
|
buf = g_strdup_printf ("%s \"%s\"", cmd, wavfile);
|
||||||
|
hexchat_exec (buf);
|
||||||
|
g_free (buf);
|
||||||
g_free (cmd);
|
g_free (cmd);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1518,18 +1518,22 @@ setup_create_color_page (void)
|
||||||
|
|
||||||
/* === GLOBALS for sound GUI === */
|
/* === GLOBALS for sound GUI === */
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
static GtkWidget *sndprog_entry;
|
static GtkWidget *sndprog_entry;
|
||||||
|
#endif
|
||||||
static GtkWidget *sndfile_entry;
|
static GtkWidget *sndfile_entry;
|
||||||
static int ignore_changed = FALSE;
|
static int ignore_changed = FALSE;
|
||||||
|
|
||||||
extern struct text_event te[]; /* text.c */
|
extern struct text_event te[]; /* text.c */
|
||||||
extern char *sound_files[];
|
extern char *sound_files[];
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
static void
|
static void
|
||||||
setup_snd_apply (void)
|
setup_snd_apply (void)
|
||||||
{
|
{
|
||||||
strcpy (setup_prefs.hex_sound_command, GTK_ENTRY (sndprog_entry)->text);
|
strcpy (setup_prefs.hex_sound_command, GTK_ENTRY (sndprog_entry)->text);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setup_snd_populate (GtkTreeView * treeview)
|
setup_snd_populate (GtkTreeView * treeview)
|
||||||
|
@ -1619,6 +1623,7 @@ setup_snd_add_columns (GtkTreeView * treeview)
|
||||||
g_object_unref (model);
|
g_object_unref (model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
static void
|
static void
|
||||||
setup_autotoggle_cb (GtkToggleButton *but, GtkToggleButton *ext)
|
setup_autotoggle_cb (GtkToggleButton *but, GtkToggleButton *ext)
|
||||||
{
|
{
|
||||||
|
@ -1632,6 +1637,7 @@ setup_autotoggle_cb (GtkToggleButton *but, GtkToggleButton *ext)
|
||||||
gtk_widget_set_sensitive (sndprog_entry, TRUE);
|
gtk_widget_set_sensitive (sndprog_entry, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setup_snd_filereq_cb (GtkWidget *entry, char *file)
|
setup_snd_filereq_cb (GtkWidget *entry, char *file)
|
||||||
|
@ -1690,12 +1696,19 @@ setup_create_sound_page (void)
|
||||||
{
|
{
|
||||||
GtkWidget *vbox1;
|
GtkWidget *vbox1;
|
||||||
GtkWidget *vbox2;
|
GtkWidget *vbox2;
|
||||||
|
|
||||||
|
/* Use only PlaySound() on Windows, to be followed on Unix with libcanberra sometime.
|
||||||
|
* Till then, keep the related set variables on Windows to avoid losing settings when
|
||||||
|
* moving across platforms.
|
||||||
|
*/
|
||||||
|
#ifndef WIN32
|
||||||
GtkWidget *table2;
|
GtkWidget *table2;
|
||||||
GtkWidget *label2;
|
GtkWidget *label2;
|
||||||
GtkWidget *label3;
|
GtkWidget *label3;
|
||||||
GtkWidget *radio_external;
|
GtkWidget *radio_external;
|
||||||
GSList *radio_group = NULL;
|
GSList *radio_group = NULL;
|
||||||
GtkWidget *radio_auto;
|
GtkWidget *radio_auto;
|
||||||
|
#endif
|
||||||
GtkWidget *scrolledwindow1;
|
GtkWidget *scrolledwindow1;
|
||||||
GtkWidget *sound_tree;
|
GtkWidget *sound_tree;
|
||||||
GtkWidget *table1;
|
GtkWidget *table1;
|
||||||
|
@ -1712,6 +1725,7 @@ setup_create_sound_page (void)
|
||||||
gtk_widget_show (vbox2);
|
gtk_widget_show (vbox2);
|
||||||
gtk_container_add (GTK_CONTAINER (vbox1), vbox2);
|
gtk_container_add (GTK_CONTAINER (vbox1), vbox2);
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
table2 = gtk_table_new (4, 3, FALSE);
|
table2 = gtk_table_new (4, 3, FALSE);
|
||||||
gtk_widget_show (table2);
|
gtk_widget_show (table2);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox2), table2, FALSE, TRUE, 8);
|
gtk_box_pack_start (GTK_BOX (vbox2), table2, FALSE, TRUE, 8);
|
||||||
|
@ -1766,6 +1780,7 @@ setup_create_sound_page (void)
|
||||||
radio_group =
|
radio_group =
|
||||||
gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_auto));
|
gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_auto));
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_auto), setup_prefs.hex_sound_command[0] == 0);
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_auto), setup_prefs.hex_sound_command[0] == 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
|
scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
|
||||||
gtk_widget_show (scrolledwindow1);
|
gtk_widget_show (scrolledwindow1);
|
||||||
|
@ -1827,7 +1842,9 @@ setup_create_sound_page (void)
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
gtk_label_set_mnemonic_widget (GTK_LABEL (label3), sndprog_entry);
|
gtk_label_set_mnemonic_widget (GTK_LABEL (label3), sndprog_entry);
|
||||||
|
#endif
|
||||||
setup_snd_row_cb (sel, NULL);
|
setup_snd_row_cb (sel, NULL);
|
||||||
|
|
||||||
return vbox1;
|
return vbox1;
|
||||||
|
@ -2279,7 +2296,9 @@ setup_apply_cb (GtkWidget *but, GtkWidget *win)
|
||||||
static void
|
static void
|
||||||
setup_ok_cb (GtkWidget *but, GtkWidget *win)
|
setup_ok_cb (GtkWidget *but, GtkWidget *win)
|
||||||
{
|
{
|
||||||
|
#ifndef WIN32
|
||||||
setup_snd_apply ();
|
setup_snd_apply ();
|
||||||
|
#endif
|
||||||
gtk_widget_destroy (win);
|
gtk_widget_destroy (win);
|
||||||
setup_apply (&setup_prefs);
|
setup_apply (&setup_prefs);
|
||||||
save_config ();
|
save_config ();
|
||||||
|
|
Loading…
Reference in New Issue