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
|
#ifndef _WINDOW_H_
#define _WINDOW_H_
#include <glib.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
// Width of the settings window
#define PREF_WINDOW_WIDTH 300
// Text on the level indicator (GtkLevelBar)
enum LevelTextType {
LEVEL_TEXT_NONE, // Do not show level value
LEVEL_TEXT_PERCENT, // show % value
LEVEL_TEXT_DB // show decibel (dB) value
};
// Settings for main window
typedef struct {
#ifdef APP_HAS_MENU
GtkUIManager *ui_manager;
#endif
GtkWidget *window; // Main window
GdkWindowState state; // Window's state
GtkWidget *recorder_button; // Button to start/stop/continue recording
GtkWidget *time_label;
GtkWidget *size_label;
GtkWidget *level_bar; // Signal level
GtkWidget *filename; // Current filename
GtkWidget *add_to_file; // Add to current file
GtkWidget *timer_active; // Timer settings
GtkWidget *timer_text;
GtkWidget *timer_save_button;
GtkWidget *audio_device; // Audio device, audio source combo
GtkWidget *media_format; // Media format (mp3, ogg, etc.) combo
GtkWidget *audio_quality; // Bitrate or quality for the selected media_format (NOT YET IMPLEMENTED)
GtkWidget *error_box; // Show error messages here
GtkWidget *settings_button; // Additional settings button
enum LevelTextType level_ttype;
} MainWindow;
void win_create_window();
void win_show_window(gboolean show);
gboolean win_window_is_visible();
void win_close_button_cb(GtkButton *button, gpointer user_data);
void win_timer_save_text_cb(GtkWidget *widget, gpointer user_data);
void win_quit_application();
void win_hide_window();
void win_update_gui();
void win_set_error_text(gchar *error_txt);
void win_show_settings_dialog();
void win_update_level_bar(gdouble peak, gdouble peak_dB);
void win_set_filename(gchar *filename);
void win_set_time_label(gchar *time_txt);
void win_set_size_label(gchar *size_txt);
void win_show_right_click_menu();
GdkWindowState win_get_window_state();
void systray_module_init();
void systray_module_exit();
void systray_icon_setup();
gboolean systray_icon_is_installed();
GtkWidget *systray_create_menu(gboolean for_tray_icon);
void systray_set_menu_items1(gint state);
void systray_set_menu_items2(gboolean show);
const gchar *systray_get_indicator_type();
#endif
|