Add a callback for refreshing the mixer info
This also adds a "Refresh" button to the main window. From Nathanial Sloss <nat@netbsd.org>, thanks!
This commit is contained in:
parent
ca38abb716
commit
3b2d6e4366
|
@ -39,6 +39,67 @@
|
|||
#include "callbacks.h"
|
||||
#include "../config.h"
|
||||
|
||||
struct _MixerWindow
|
||||
{
|
||||
Mixer * mixer;
|
||||
gboolean fullscreen;
|
||||
|
||||
/* widgets */
|
||||
GtkWidget * window;
|
||||
#ifndef EMBEDDED
|
||||
GtkWidget * menubar;
|
||||
#endif
|
||||
GtkWidget * about;
|
||||
};
|
||||
|
||||
#ifdef AUDIO_MIXER_DEVINFO
|
||||
typedef struct _MixerClass
|
||||
{
|
||||
int mixer_class;
|
||||
audio_mixer_name_t label;
|
||||
GtkWidget * hbox;
|
||||
int page;
|
||||
} MixerClass;
|
||||
#endif
|
||||
|
||||
typedef struct _MixerLevel
|
||||
{
|
||||
uint8_t channels[8];
|
||||
size_t channels_cnt;
|
||||
} MixerLevel;
|
||||
|
||||
typedef struct _MixerControl
|
||||
{
|
||||
int index;
|
||||
int type;
|
||||
union {
|
||||
int ord;
|
||||
int mask;
|
||||
MixerLevel level;
|
||||
} un;
|
||||
} MixerControl;
|
||||
|
||||
struct _Mixer
|
||||
{
|
||||
/* widgets */
|
||||
GtkWidget * window;
|
||||
GtkWidget * widget;
|
||||
GtkWidget * notebook;
|
||||
GtkWidget * properties;
|
||||
PangoFontDescription * bold;
|
||||
|
||||
/* internals */
|
||||
char * device;
|
||||
#ifdef AUDIO_MIXER_DEVINFO
|
||||
int fd;
|
||||
|
||||
MixerClass * mc;
|
||||
size_t mc_cnt;
|
||||
#else
|
||||
int fd;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
/* public */
|
||||
/* functions */
|
||||
|
@ -53,6 +114,20 @@ gboolean on_closex(gpointer data)
|
|||
}
|
||||
|
||||
|
||||
/* on_refresh */
|
||||
void on_refresh(gpointer data)
|
||||
{
|
||||
MixerWindow * mixer = data;
|
||||
GtkWidget * vbox;
|
||||
GtkWidget * widget;
|
||||
|
||||
|
||||
mixerwindow_delete(mixer);
|
||||
mixer= mixerwindow_new("/dev/mixer", ML_TABBED, FALSE);
|
||||
|
||||
mixerwindow_show(mixer);
|
||||
}
|
||||
|
||||
/* on_embedded */
|
||||
void on_embedded(gpointer data)
|
||||
{
|
||||
|
|
|
@ -41,6 +41,7 @@ void on_embedded(gpointer data);
|
|||
/* menubar */
|
||||
void on_file_properties(gpointer data);
|
||||
void on_file_close(gpointer data);
|
||||
void on_refresh(gpointer data);
|
||||
|
||||
void on_help_about(gpointer data);
|
||||
void on_help_contents(gpointer data);
|
||||
|
|
|
@ -111,6 +111,8 @@ static const DesktopMenu _mixer_menu_view[] =
|
|||
NULL,
|
||||
# endif
|
||||
0, GDK_KEY_F11 },
|
||||
{ N_("_Refresh"), G_CALLBACK(on_refresh), "refresh", GDK_CONTROL_MASK,
|
||||
GDK_KEY_R },
|
||||
{ "", NULL, NULL, 0, 0 },
|
||||
{ N_("_All"), G_CALLBACK(on_view_all), "stock_select-all",
|
||||
GDK_CONTROL_MASK, GDK_KEY_A },
|
||||
|
@ -142,6 +144,8 @@ static const DesktopMenu _mixer_menu_view_tabbed[] =
|
|||
NULL,
|
||||
# endif
|
||||
0, GDK_KEY_F11 },
|
||||
{ N_("_Refresh"), G_CALLBACK(on_refresh), "refresh", GDK_CONTROL_MASK,
|
||||
GDK_KEY_R },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
{ "", NULL, NULL, 0, 0 },
|
||||
{ N_("_Outputs"), G_CALLBACK(on_view_outputs), "audio-volume-high",
|
||||
|
@ -191,6 +195,8 @@ static DesktopToolbar _mixer_toolbar[] =
|
|||
"gtk-fullscreen",
|
||||
# endif
|
||||
0, GDK_KEY_F11, NULL },
|
||||
{ N_("_Refresh"), G_CALLBACK(on_refresh), "refresh", GDK_CONTROL_MASK,
|
||||
GDK_KEY_R },
|
||||
{ NULL, NULL, NULL, 0, 0, NULL },
|
||||
{ N_("All"), G_CALLBACK(on_view_all), "stock_select-all", 0, 0, NULL },
|
||||
# ifdef AUDIO_MIXER_DEVINFO
|
||||
|
|
Loading…
Reference in New Issue
Block a user