Merge the callbacks in MixerWindow
This commit is contained in:
parent
2ff8f5e7b3
commit
7565173f29
182
src/callbacks.c
182
src/callbacks.c
|
@ -1,182 +0,0 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2009-2017 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS Desktop Mixer */
|
||||
/* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
# include <stdio.h>
|
||||
#endif
|
||||
#if defined(__NetBSD__)
|
||||
# include <sys/audioio.h>
|
||||
#endif
|
||||
#include <Desktop.h>
|
||||
#include "window.h"
|
||||
#include "callbacks.h"
|
||||
#include "../config.h"
|
||||
|
||||
|
||||
/* public */
|
||||
/* functions */
|
||||
/* callbacks */
|
||||
/* on_closex */
|
||||
gboolean on_closex(gpointer data)
|
||||
{
|
||||
(void) data;
|
||||
|
||||
gtk_main_quit();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* on_embedded */
|
||||
void on_embedded(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* file menu */
|
||||
/* on_file_properties */
|
||||
void on_file_properties(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_properties(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* on_file_close */
|
||||
void on_file_close(gpointer data)
|
||||
{
|
||||
on_closex(data);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_all */
|
||||
void on_view_all(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_all(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_fullscreen */
|
||||
void on_view_fullscreen(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
gboolean fullscreen;
|
||||
|
||||
fullscreen = mixerwindow_get_fullscreen(mixer);
|
||||
mixerwindow_set_fullscreen(mixer, !fullscreen);
|
||||
}
|
||||
|
||||
|
||||
#ifdef AUDIO_MIXER_DEVINFO
|
||||
/* on_view_outputs */
|
||||
void on_view_outputs(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCoutputs);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_inputs */
|
||||
void on_view_inputs(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCinputs);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_record */
|
||||
void on_view_record(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCrecord);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_monitor */
|
||||
void on_view_monitor(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCmonitor);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_equalization */
|
||||
void on_view_equalization(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCequalization);
|
||||
}
|
||||
|
||||
|
||||
/* on_view_mix */
|
||||
void on_view_mix(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, "mix");
|
||||
}
|
||||
|
||||
|
||||
/* on_view_modem */
|
||||
void on_view_modem(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCmodem);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* on_help_about */
|
||||
void on_help_about(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_about(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* on_help_contents */
|
||||
void on_help_contents(gpointer data)
|
||||
{
|
||||
(void) data;
|
||||
|
||||
desktop_help_contents(PACKAGE, "mixer");
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2009-2015 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS Desktop Mixer */
|
||||
/* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
|
||||
|
||||
#ifndef MIXER_CALLBACKS_H
|
||||
# define MIXER_CALLBACKS_H
|
||||
|
||||
# include <gtk/gtk.h>
|
||||
|
||||
|
||||
/* callbacks */
|
||||
gboolean on_closex(gpointer data);
|
||||
void on_embedded(gpointer data);
|
||||
|
||||
/* menubar */
|
||||
void on_file_properties(gpointer data);
|
||||
void on_file_close(gpointer data);
|
||||
|
||||
void on_help_about(gpointer data);
|
||||
void on_help_contents(gpointer data);
|
||||
|
||||
void on_view_all(gpointer data);
|
||||
void on_view_equalization(gpointer data);
|
||||
void on_view_fullscreen(gpointer data);
|
||||
void on_view_inputs(gpointer data);
|
||||
void on_view_mix(gpointer data);
|
||||
void on_view_modem(gpointer data);
|
||||
void on_view_monitor(gpointer data);
|
||||
void on_view_outputs(gpointer data);
|
||||
void on_view_record(gpointer data);
|
||||
|
||||
#endif /* !MIXER_CALLBACKS_H */
|
|
@ -6,24 +6,21 @@ cflags_force=`pkg-config --cflags libDesktop`
|
|||
cflags=-W -Wall -g -O2 -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector
|
||||
ldflags_force=`pkg-config --libs libDesktop` -lintl -lm
|
||||
ldflags=-pie -Wl,-z,relro -Wl,-z,now
|
||||
dist=Makefile,common.h,control.h,mixer.h,window.h,callbacks.h
|
||||
dist=Makefile,common.h,control.h,mixer.h,window.h
|
||||
|
||||
[mixer]
|
||||
type=binary
|
||||
sources=control.c,mixer.c,window.c,callbacks.c,main.c
|
||||
sources=control.c,mixer.c,window.c,main.c
|
||||
install=$(BINDIR)
|
||||
|
||||
[control.c]
|
||||
depends=../include/Mixer/control.h,common.h,control.h,../config.h
|
||||
|
||||
[mixer.c]
|
||||
depends=callbacks.h,common.h,mixer.h,../config.h
|
||||
depends=common.h,mixer.h,../config.h
|
||||
|
||||
[window.c]
|
||||
depends=mixer.h,window.h
|
||||
|
||||
[callbacks.c]
|
||||
depends=mixer.h,common.h,callbacks.h,../config.h
|
||||
|
||||
[main.c]
|
||||
depends=mixer.h,window.h,common.h,../config.h
|
||||
|
|
293
src/window.c
293
src/window.c
|
@ -40,7 +40,6 @@ static char _license[] =
|
|||
#endif
|
||||
#include <System.h>
|
||||
#include <Desktop.h>
|
||||
#include "callbacks.h"
|
||||
#include "window.h"
|
||||
#include "../config.h"
|
||||
#define _(string) gettext(string)
|
||||
|
@ -64,6 +63,30 @@ struct _MixerWindow
|
|||
};
|
||||
|
||||
|
||||
/* prototypes */
|
||||
static gboolean _mixerwindow_on_closex(gpointer data);
|
||||
static void _mixerwindow_on_embedded(gpointer data);
|
||||
|
||||
/* menubar */
|
||||
static void _mixerwindow_on_file_properties(gpointer data);
|
||||
static void _mixerwindow_on_file_close(gpointer data);
|
||||
|
||||
static void _mixerwindow_on_help_about(gpointer data);
|
||||
static void _mixerwindow_on_help_contents(gpointer data);
|
||||
|
||||
static void _mixerwindow_on_view_all(gpointer data);
|
||||
static void _mixerwindow_on_view_fullscreen(gpointer data);
|
||||
#ifdef AUDIO_MIXER_DEVINFO
|
||||
static void _mixerwindow_on_view_equalization(gpointer data);
|
||||
static void _mixerwindow_on_view_inputs(gpointer data);
|
||||
static void _mixerwindow_on_view_mix(gpointer data);
|
||||
static void _mixerwindow_on_view_modem(gpointer data);
|
||||
static void _mixerwindow_on_view_monitor(gpointer data);
|
||||
static void _mixerwindow_on_view_outputs(gpointer data);
|
||||
static void _mixerwindow_on_view_record(gpointer data);
|
||||
#endif
|
||||
|
||||
|
||||
/* constants */
|
||||
static char const * _authors[] =
|
||||
{
|
||||
|
@ -73,18 +96,22 @@ static char const * _authors[] =
|
|||
|
||||
static const DesktopAccel _mixer_accel[] =
|
||||
{
|
||||
{ G_CALLBACK(on_file_close), GDK_CONTROL_MASK, GDK_KEY_W },
|
||||
{ G_CALLBACK(on_file_properties), GDK_MOD1_MASK, GDK_KEY_Return },
|
||||
{ G_CALLBACK(_mixerwindow_on_file_close), GDK_CONTROL_MASK, GDK_KEY_W },
|
||||
{ G_CALLBACK(_mixerwindow_on_file_properties), GDK_MOD1_MASK,
|
||||
GDK_KEY_Return },
|
||||
#ifdef EMBEDDED
|
||||
{ G_CALLBACK(on_view_all), GDK_CONTROL_MASK, GDK_KEY_A },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_all), GDK_CONTROL_MASK, GDK_KEY_A },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
{ G_CALLBACK(on_view_outputs), GDK_CONTROL_MASK, GDK_KEY_O },
|
||||
{ G_CALLBACK(on_view_inputs), GDK_CONTROL_MASK, GDK_KEY_I },
|
||||
{ G_CALLBACK(on_view_record), GDK_CONTROL_MASK, GDK_KEY_R },
|
||||
{ G_CALLBACK(on_view_monitor), GDK_CONTROL_MASK, GDK_KEY_N },
|
||||
{ G_CALLBACK(on_view_equalization), GDK_CONTROL_MASK, GDK_KEY_E },
|
||||
{ G_CALLBACK(on_view_mix), GDK_CONTROL_MASK, GDK_KEY_X },
|
||||
{ G_CALLBACK(on_view_modem), GDK_CONTROL_MASK, GDK_KEY_M },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_outputs), GDK_CONTROL_MASK,
|
||||
GDK_KEY_O },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_inputs), GDK_CONTROL_MASK, GDK_KEY_I },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_record), GDK_CONTROL_MASK, GDK_KEY_R },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_monitor), GDK_CONTROL_MASK,
|
||||
GDK_KEY_N },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_equalization), GDK_CONTROL_MASK,
|
||||
GDK_KEY_E },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_mix), GDK_CONTROL_MASK, GDK_KEY_X },
|
||||
{ G_CALLBACK(_mixerwindow_on_view_modem), GDK_CONTROL_MASK, GDK_KEY_M },
|
||||
# endif
|
||||
#endif /* EMBEDDED */
|
||||
{ NULL, 0, 0 }
|
||||
|
@ -93,17 +120,17 @@ static const DesktopAccel _mixer_accel[] =
|
|||
#ifndef EMBEDDED
|
||||
static const DesktopMenu _mixer_menu_file[] =
|
||||
{
|
||||
{ N_("_Properties"), G_CALLBACK(on_file_properties),
|
||||
{ N_("_Properties"), G_CALLBACK(_mixerwindow_on_file_properties),
|
||||
GTK_STOCK_PROPERTIES, GDK_MOD1_MASK, GDK_KEY_Return },
|
||||
{ "", NULL, NULL, 0, 0 },
|
||||
{ N_("_Close"), G_CALLBACK(on_file_close), GTK_STOCK_CLOSE,
|
||||
{ N_("_Close"), G_CALLBACK(_mixerwindow_on_file_close), GTK_STOCK_CLOSE,
|
||||
GDK_CONTROL_MASK, GDK_KEY_W },
|
||||
{ NULL, NULL, NULL, 0, 0 }
|
||||
};
|
||||
|
||||
static const DesktopMenu _mixer_menu_view[] =
|
||||
{
|
||||
{ N_("_Fullscreen"), G_CALLBACK(on_view_fullscreen),
|
||||
{ N_("_Fullscreen"), G_CALLBACK(_mixerwindow_on_view_fullscreen),
|
||||
# if GTK_CHECK_VERSION(2, 8, 0)
|
||||
GTK_STOCK_FULLSCREEN,
|
||||
# else
|
||||
|
@ -111,30 +138,30 @@ static const DesktopMenu _mixer_menu_view[] =
|
|||
# endif
|
||||
0, GDK_KEY_F11 },
|
||||
{ "", NULL, NULL, 0, 0 },
|
||||
{ N_("_All"), G_CALLBACK(on_view_all), "stock_select-all",
|
||||
{ N_("_All"), G_CALLBACK(_mixerwindow_on_view_all), "stock_select-all",
|
||||
GDK_CONTROL_MASK, GDK_KEY_A },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
{ N_("_Outputs"), G_CALLBACK(on_view_outputs), "audio-volume-high",
|
||||
GDK_CONTROL_MASK, GDK_KEY_O },
|
||||
{ N_("_Inputs"), G_CALLBACK(on_view_inputs), "stock_mic",
|
||||
{ N_("_Outputs"), G_CALLBACK(_mixerwindow_on_view_outputs),
|
||||
"audio-volume-high", GDK_CONTROL_MASK, GDK_KEY_O },
|
||||
{ N_("_Inputs"), G_CALLBACK(_mixerwindow_on_view_inputs), "stock_mic",
|
||||
GDK_CONTROL_MASK, GDK_KEY_I },
|
||||
{ N_("_Record"), G_CALLBACK(on_view_record), "gtk-media-record",
|
||||
GDK_CONTROL_MASK, GDK_KEY_R },
|
||||
{ N_("Mo_nitor"), G_CALLBACK(on_view_monitor),
|
||||
{ N_("_Record"), G_CALLBACK(_mixerwindow_on_view_record),
|
||||
"gtk-media-record", GDK_CONTROL_MASK, GDK_KEY_R },
|
||||
{ N_("Mo_nitor"), G_CALLBACK(_mixerwindow_on_view_monitor),
|
||||
"utilities-system-monitor", GDK_CONTROL_MASK, GDK_KEY_N },
|
||||
{ N_("_Equalization"), G_CALLBACK(on_view_equalization), "multimedia",
|
||||
GDK_CONTROL_MASK, GDK_KEY_E },
|
||||
{ N_("Mi_x"), G_CALLBACK(on_view_mix), "stock_volume", GDK_CONTROL_MASK,
|
||||
GDK_KEY_X },
|
||||
{ N_("_Modem"), G_CALLBACK(on_view_modem), "modem", GDK_CONTROL_MASK,
|
||||
GDK_KEY_M },
|
||||
{ N_("_Equalization"), G_CALLBACK(_mixerwindow_on_view_equalization),
|
||||
"multimedia", GDK_CONTROL_MASK, GDK_KEY_E },
|
||||
{ N_("Mi_x"), G_CALLBACK(_mixerwindow_on_view_mix), "stock_volume",
|
||||
GDK_CONTROL_MASK, GDK_KEY_X },
|
||||
{ N_("_Modem"), G_CALLBACK(_mixerwindow_on_view_modem), "modem",
|
||||
GDK_CONTROL_MASK, GDK_KEY_M },
|
||||
# endif
|
||||
{ NULL, NULL, NULL, 0, 0 }
|
||||
};
|
||||
|
||||
static const DesktopMenu _mixer_menu_view_tabbed[] =
|
||||
{
|
||||
{ N_("_Fullscreen"), G_CALLBACK(on_view_fullscreen),
|
||||
{ N_("_Fullscreen"), G_CALLBACK(_mixerwindow_on_view_fullscreen),
|
||||
# if GTK_CHECK_VERSION(2, 8, 0)
|
||||
GTK_STOCK_FULLSCREEN,
|
||||
# else
|
||||
|
@ -143,29 +170,30 @@ static const DesktopMenu _mixer_menu_view_tabbed[] =
|
|||
0, GDK_KEY_F11 },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
{ "", NULL, NULL, 0, 0 },
|
||||
{ N_("_Outputs"), G_CALLBACK(on_view_outputs), "audio-volume-high",
|
||||
GDK_CONTROL_MASK, GDK_KEY_O },
|
||||
{ N_("_Inputs"), G_CALLBACK(on_view_inputs), "stock_mic",
|
||||
{ N_("_Outputs"), G_CALLBACK(_mixerwindow_on_view_outputs),
|
||||
"audio-volume-high", GDK_CONTROL_MASK, GDK_KEY_O },
|
||||
{ N_("_Inputs"), G_CALLBACK(_mixerwindow_on_view_inputs), "stock_mic",
|
||||
GDK_CONTROL_MASK, GDK_KEY_I },
|
||||
{ N_("_Record"), G_CALLBACK(on_view_record), "gtk-media-record",
|
||||
GDK_CONTROL_MASK, GDK_KEY_R },
|
||||
{ N_("Mo_nitor"), G_CALLBACK(on_view_monitor),
|
||||
{ N_("_Record"), G_CALLBACK(_mixerwindow_on_view_record),
|
||||
"gtk-media-record", GDK_CONTROL_MASK, GDK_KEY_R },
|
||||
{ N_("Mo_nitor"), G_CALLBACK(_mixerwindow_on_view_monitor),
|
||||
"utilities-system-monitor", GDK_CONTROL_MASK, GDK_KEY_N },
|
||||
{ N_("_Equalization"), G_CALLBACK(on_view_equalization), "multimedia",
|
||||
GDK_CONTROL_MASK, GDK_KEY_E },
|
||||
{ N_("Mi_x"), G_CALLBACK(on_view_mix), "stock_volume", GDK_CONTROL_MASK,
|
||||
GDK_KEY_X },
|
||||
{ N_("_Modem"), G_CALLBACK(on_view_modem), "modem", GDK_CONTROL_MASK,
|
||||
GDK_KEY_M },
|
||||
{ N_("_Equalization"), G_CALLBACK(_mixerwindow_on_view_equalization),
|
||||
"multimedia", GDK_CONTROL_MASK, GDK_KEY_E },
|
||||
{ N_("Mi_x"), G_CALLBACK(_mixerwindow_on_view_mix), "stock_volume",
|
||||
GDK_CONTROL_MASK, GDK_KEY_X },
|
||||
{ N_("_Modem"), G_CALLBACK(_mixerwindow_on_view_modem), "modem",
|
||||
GDK_CONTROL_MASK, GDK_KEY_M },
|
||||
# endif
|
||||
{ NULL, NULL, NULL, 0, 0 }
|
||||
};
|
||||
|
||||
static const DesktopMenu _mixer_menu_help[] =
|
||||
{
|
||||
{ N_("_Contents"), G_CALLBACK(on_help_contents), "help-contents", 0,
|
||||
GDK_KEY_F1 },
|
||||
{ N_("_About"), G_CALLBACK(on_help_about), GTK_STOCK_ABOUT, 0, 0 },
|
||||
{ N_("_Contents"), G_CALLBACK(_mixerwindow_on_help_contents),
|
||||
"help-contents", 0, GDK_KEY_F1 },
|
||||
{ N_("_About"), G_CALLBACK(_mixerwindow_on_help_about), GTK_STOCK_ABOUT,
|
||||
0, 0 },
|
||||
{ NULL, NULL, NULL, 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -180,10 +208,10 @@ static DesktopMenubar _mixer_menubar[] =
|
|||
|
||||
static DesktopToolbar _mixer_toolbar[] =
|
||||
{
|
||||
{ N_("Properties"), G_CALLBACK(on_file_properties),
|
||||
{ N_("Properties"), G_CALLBACK(_mixerwindow_on_file_properties),
|
||||
GTK_STOCK_PROPERTIES, GDK_MOD1_MASK, GDK_KEY_Return, NULL },
|
||||
{ "", NULL, NULL, 0, 0, NULL },
|
||||
{ N_("Fullscreen"), G_CALLBACK(on_view_fullscreen),
|
||||
{ N_("Fullscreen"), G_CALLBACK(_mixerwindow_on_view_fullscreen),
|
||||
# if GTK_CHECK_VERSION(2, 8, 0)
|
||||
GTK_STOCK_FULLSCREEN,
|
||||
# else
|
||||
|
@ -191,20 +219,23 @@ static DesktopToolbar _mixer_toolbar[] =
|
|||
# endif
|
||||
0, GDK_KEY_F11, NULL },
|
||||
{ NULL, NULL, NULL, 0, 0, NULL },
|
||||
{ N_("All"), G_CALLBACK(on_view_all), "stock_select-all", 0, 0, NULL },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
{ N_("Outputs"), G_CALLBACK(on_view_outputs), "audio-volume-high", 0, 0,
|
||||
NULL },
|
||||
{ N_("Inputs"), G_CALLBACK(on_view_inputs), "stock_line-in", 0, 0,
|
||||
NULL },
|
||||
{ N_("Record"), G_CALLBACK(on_view_record), "gtk-media-record", 0, 0,
|
||||
NULL },
|
||||
{ N_("Monitor"), G_CALLBACK(on_view_monitor), "audio-input-microphone",
|
||||
{ N_("All"), G_CALLBACK(_mixerwindow_on_view_all), "stock_select-all",
|
||||
0, 0, NULL },
|
||||
{ N_("Equalization"), G_CALLBACK(on_view_equalization), "multimedia", 0,
|
||||
0, NULL },
|
||||
{ N_("Mix"), G_CALLBACK(on_view_mix), "stock_volume", 0, 0, NULL },
|
||||
{ N_("Modem"), G_CALLBACK(on_view_modem), "modem", 0, 0, NULL },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
{ N_("Outputs"), G_CALLBACK(_mixerwindow_on_view_outputs),
|
||||
"audio-volume-high", 0, 0, NULL },
|
||||
{ N_("Inputs"), G_CALLBACK(_mixerwindow_on_view_inputs),
|
||||
"stock_line-in", 0, 0, NULL },
|
||||
{ N_("Record"), G_CALLBACK(_mixerwindow_on_view_record),
|
||||
"gtk-media-record", 0, 0, NULL },
|
||||
{ N_("Monitor"), G_CALLBACK(_mixerwindow_on_view_monitor),
|
||||
"audio-input-microphone", 0, 0, NULL },
|
||||
{ N_("Equalization"), G_CALLBACK(_mixerwindow_on_view_equalization),
|
||||
"multimedia", 0, 0, NULL },
|
||||
{ N_("Mix"), G_CALLBACK(_mixerwindow_on_view_mix), "stock_volume", 0, 0,
|
||||
NULL },
|
||||
{ N_("Modem"), G_CALLBACK(_mixerwindow_on_view_modem), "modem", 0, 0,
|
||||
NULL },
|
||||
# endif
|
||||
{ NULL, NULL, NULL, 0, 0, NULL }
|
||||
};
|
||||
|
@ -233,7 +264,7 @@ MixerWindow * mixerwindow_new(char const * device, MixerLayout layout,
|
|||
{
|
||||
mixer->window = gtk_plug_new(0);
|
||||
g_signal_connect_swapped(mixer->window, "embedded", G_CALLBACK(
|
||||
on_embedded), mixer);
|
||||
_mixerwindow_on_embedded), mixer);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -247,7 +278,7 @@ MixerWindow * mixerwindow_new(char const * device, MixerLayout layout,
|
|||
#endif
|
||||
gtk_window_set_title(GTK_WINDOW(mixer->window), _("Mixer"));
|
||||
g_signal_connect_swapped(mixer->window, "delete-event",
|
||||
G_CALLBACK(on_closex), mixer);
|
||||
G_CALLBACK(_mixerwindow_on_closex), mixer);
|
||||
}
|
||||
mixer->mixer = NULL;
|
||||
mixer->fullscreen = FALSE;
|
||||
|
@ -424,3 +455,145 @@ void mixerwindow_show_class(MixerWindow * mixer, char const * name)
|
|||
{
|
||||
mixer_show_class(mixer->mixer, name);
|
||||
}
|
||||
|
||||
|
||||
/* private */
|
||||
/* functions */
|
||||
/* callbacks */
|
||||
/* mixer_on_closex */
|
||||
static gboolean _mixerwindow_on_closex(gpointer data)
|
||||
{
|
||||
(void) data;
|
||||
|
||||
gtk_main_quit();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_embedded */
|
||||
static void _mixerwindow_on_embedded(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* file menu */
|
||||
/* mixer_on_file_properties */
|
||||
static void _mixerwindow_on_file_properties(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_properties(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_file_close */
|
||||
static void _mixerwindow_on_file_close(gpointer data)
|
||||
{
|
||||
_mixerwindow_on_closex(data);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_all */
|
||||
static void _mixerwindow_on_view_all(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_all(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_fullscreen */
|
||||
static void _mixerwindow_on_view_fullscreen(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
gboolean fullscreen;
|
||||
|
||||
fullscreen = mixerwindow_get_fullscreen(mixer);
|
||||
mixerwindow_set_fullscreen(mixer, !fullscreen);
|
||||
}
|
||||
|
||||
|
||||
#ifdef AUDIO_MIXER_DEVINFO
|
||||
/* mixer_on_view_outputs */
|
||||
static void _mixerwindow_on_view_outputs(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCoutputs);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_inputs */
|
||||
static void _mixerwindow_on_view_inputs(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCinputs);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_record */
|
||||
static void _mixerwindow_on_view_record(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCrecord);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_monitor */
|
||||
static void _mixerwindow_on_view_monitor(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCmonitor);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_equalization */
|
||||
static void _mixerwindow_on_view_equalization(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCequalization);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_mix */
|
||||
static void _mixerwindow_on_view_mix(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, "mix");
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_view_modem */
|
||||
static void _mixerwindow_on_view_modem(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_show_class(mixer, AudioCmodem);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* mixer_on_help_about */
|
||||
static void _mixerwindow_on_help_about(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
|
||||
mixerwindow_about(mixer);
|
||||
}
|
||||
|
||||
|
||||
/* mixer_on_help_contents */
|
||||
static void _mixerwindow_on_help_contents(gpointer data)
|
||||
{
|
||||
(void) data;
|
||||
|
||||
desktop_help_contents(PACKAGE, "mixer");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user