comparison src/skins/ui_vis.h @ 2579:8fba3fbf1a0f

add vis and svis
author Tomasz Mon <desowin@gmail.com>
date Mon, 19 May 2008 18:05:54 +0200
parents
children 963796db51ea
comparison
equal deleted inserted replaced
2574:8da9705862e5 2579:8fba3fbf1a0f
1 /*
2 * Audacious - a cross-platform multimedia player
3 * Copyright (c) 2007 Audacious development team.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; under version 3 of the License.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses>.
16 *
17 * The Audacious team does not consider modular code linking to
18 * Audacious or using our public API to be a derived work.
19 */
20
21 #ifndef UIVIS_H
22 #define UIVIS_H
23
24 #include <gtk/gtk.h>
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 #define UI_VIS(obj) GTK_CHECK_CAST (obj, ui_vis_get_type (), UiVis)
31 #define UI_VIS_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, ui_vis_get_type (), UiVisClass)
32 #define UI_IS_VIS(obj) GTK_CHECK_TYPE (obj, ui_vis_get_type ())
33
34 typedef enum {
35 VIS_ANALYZER, VIS_SCOPE, VIS_VOICEPRINT, VIS_OFF
36 } VisType;
37
38 typedef enum {
39 ANALYZER_NORMAL, ANALYZER_FIRE, ANALYZER_VLINES
40 } AnalyzerMode;
41
42 typedef enum {
43 ANALYZER_LINES, ANALYZER_BARS
44 } AnalyzerType;
45
46 typedef enum {
47 SCOPE_DOT, SCOPE_LINE, SCOPE_SOLID
48 } ScopeMode;
49 typedef enum {
50 VOICEPRINT_NORMAL, VOICEPRINT_FIRE, VOICEPRINT_ICE
51 } VoiceprintMode;
52
53
54 typedef enum {
55 VU_NORMAL, VU_SMOOTH
56 } VUMode;
57
58 typedef enum {
59 REFRESH_FULL, REFRESH_HALF, REFRESH_QUARTER, REFRESH_EIGTH
60 } RefreshRate;
61
62 typedef enum {
63 FALLOFF_SLOWEST, FALLOFF_SLOW, FALLOFF_MEDIUM, FALLOFF_FAST,
64 FALLOFF_FASTEST
65 } FalloffSpeed;
66
67 typedef struct _UiVis UiVis;
68 typedef struct _UiVisClass UiVisClass;
69
70 struct _UiVis {
71 GtkWidget widget;
72
73 gint x, y, width, height;
74 gfloat data[75], peak[75], peak_speed[75];
75 gint refresh_delay;
76 gboolean scaled;
77 GtkWidget *fixed;
78 gboolean visible_window;
79 GdkWindow *event_window;
80 };
81
82 struct _UiVisClass {
83 GtkWidgetClass parent_class;
84 void (* doubled) (UiVis *vis);
85 };
86
87 GtkWidget* ui_vis_new (GtkWidget *fixed, gint x, gint y, gint width);
88 GtkType ui_vis_get_type(void);
89 void ui_vis_set_vis(GtkWidget *widget, gint num);
90 void ui_vis_clear_data(GtkWidget *widget);
91 void ui_vis_timeout_func(GtkWidget *widget, guchar * data);
92 void ui_vis_set_visible(GtkWidget *widget, gboolean window_is_visible);
93
94 #ifdef __cplusplus
95 }
96 #endif
97
98 #endif