fix build for --disable-gtk-doc
[swfdec.git] / swfdec / swfdec_player.h
blob62be022664968b423e8413a34c6ec3e8750fa41f
1 /* Swfdec
2 * Copyright (C) 2006-2007 Benjamin Otte <otte@gnome.org>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library 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 GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301 USA
20 #ifndef _SWFDEC_PLAYER_H_
21 #define _SWFDEC_PLAYER_H_
23 #include <glib-object.h>
24 #include <cairo.h>
25 #include <swfdec/swfdec_as_context.h>
26 #include <swfdec/swfdec_as_types.h>
27 #include <swfdec/swfdec_url.h>
29 G_BEGIN_DECLS
31 typedef enum {
32 SWFDEC_MOUSE_CURSOR_NORMAL,
33 SWFDEC_MOUSE_CURSOR_NONE,
34 SWFDEC_MOUSE_CURSOR_TEXT,
35 SWFDEC_MOUSE_CURSOR_CLICK
36 } SwfdecMouseCursor;
38 typedef enum {
39 SWFDEC_ALIGNMENT_TOP_LEFT,
40 SWFDEC_ALIGNMENT_TOP,
41 SWFDEC_ALIGNMENT_TOP_RIGHT,
42 SWFDEC_ALIGNMENT_LEFT,
43 SWFDEC_ALIGNMENT_CENTER,
44 SWFDEC_ALIGNMENT_RIGHT,
45 SWFDEC_ALIGNMENT_BOTTOM_LEFT,
46 SWFDEC_ALIGNMENT_BOTTOM,
47 SWFDEC_ALIGNMENT_BOTTOM_RIGHT
48 } SwfdecAlignment;
50 typedef enum {
51 SWFDEC_SCALE_SHOW_ALL,
52 SWFDEC_SCALE_NO_BORDER,
53 SWFDEC_SCALE_EXACT_FIT,
54 SWFDEC_SCALE_NONE
55 } SwfdecScaleMode;
57 #define SWFDEC_TYPE_TIME_VAL swfdec_time_val_get_type()
58 GType swfdec_time_val_get_type (void);
60 /* forward declarations */
61 typedef struct _SwfdecPlayerScripting SwfdecPlayerScripting;
62 typedef struct _SwfdecRenderer SwfdecRenderer;
64 typedef struct _SwfdecPlayer SwfdecPlayer;
65 typedef struct _SwfdecPlayerPrivate SwfdecPlayerPrivate;
66 typedef struct _SwfdecPlayerClass SwfdecPlayerClass;
68 #define SWFDEC_TYPE_PLAYER (swfdec_player_get_type())
69 #define SWFDEC_IS_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_PLAYER))
70 #define SWFDEC_IS_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_PLAYER))
71 #define SWFDEC_PLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_PLAYER, SwfdecPlayer))
72 #define SWFDEC_PLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_PLAYER, SwfdecPlayerClass))
73 #define SWFDEC_PLAYER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_PLAYER, SwfdecPlayerClass))
75 struct _SwfdecPlayer
77 SwfdecAsContext context;
78 SwfdecPlayerPrivate * priv;
81 struct _SwfdecPlayerClass
83 SwfdecAsContextClass context_class;
85 void (* advance) (SwfdecPlayer * player,
86 gulong msecs,
87 guint audio_samples);
88 gboolean (* handle_key) (SwfdecPlayer * player,
89 guint key,
90 guint character,
91 gboolean down);
92 gboolean (* handle_mouse) (SwfdecPlayer * player,
93 double x,
94 double y,
95 int button);
96 void (* missing_plugins) (SwfdecPlayer * player,
97 const char ** details);
98 gboolean (* query_size) (SwfdecPlayer * player,
99 gboolean fullscreen,
100 int * width,
101 int * height);
104 void swfdec_init (void);
106 GType swfdec_player_get_type (void);
108 SwfdecPlayer * swfdec_player_new (SwfdecAsDebugger * debugger);
110 gboolean swfdec_player_is_initialized (SwfdecPlayer * player);
111 glong swfdec_player_get_next_event (SwfdecPlayer * player);
112 double swfdec_player_get_rate (SwfdecPlayer * player);
113 void swfdec_player_get_default_size (SwfdecPlayer * player,
114 guint * width,
115 guint * height);
116 void swfdec_player_get_size (SwfdecPlayer * player,
117 int * width,
118 int * height);
119 void swfdec_player_set_size (SwfdecPlayer * player,
120 int width,
121 int height);
122 guint swfdec_player_get_background_color
123 (SwfdecPlayer * player);
124 SwfdecScaleMode swfdec_player_get_scale_mode (SwfdecPlayer * player);
125 void swfdec_player_set_scale_mode (SwfdecPlayer * player,
126 SwfdecScaleMode mode);
127 SwfdecAlignment swfdec_player_get_alignment (SwfdecPlayer * player);
128 void swfdec_player_set_alignment (SwfdecPlayer * player,
129 SwfdecAlignment align);
130 gulong swfdec_player_get_maximum_runtime
131 (SwfdecPlayer * player);
132 void swfdec_player_set_maximum_runtime
133 (SwfdecPlayer * player,
134 gulong msecs);
135 const SwfdecURL *
136 swfdec_player_get_url (SwfdecPlayer * player);
137 void swfdec_player_set_url (SwfdecPlayer * player,
138 const SwfdecURL * url);
139 const SwfdecURL *
140 swfdec_player_get_base_url (SwfdecPlayer * player);
141 void swfdec_player_set_base_url (SwfdecPlayer * player,
142 const SwfdecURL * url);
143 const char* swfdec_player_get_variables (SwfdecPlayer * player);
144 void swfdec_player_set_variables (SwfdecPlayer * player,
145 const char * variables);
146 SwfdecPlayerScripting *
147 swfdec_player_get_scripting (SwfdecPlayer * player);
148 void swfdec_player_set_scripting (SwfdecPlayer * player,
149 SwfdecPlayerScripting *scripting);
150 const char * swfdec_player_get_selection (SwfdecPlayer * player);
151 gboolean swfdec_player_get_focus (SwfdecPlayer * player);
152 void swfdec_player_set_focus (SwfdecPlayer * player,
153 gboolean focus);
154 SwfdecRenderer *swfdec_player_get_renderer (SwfdecPlayer * player);
155 void swfdec_player_set_renderer (SwfdecPlayer * player,
156 SwfdecRenderer * renderer);
157 gboolean swfdec_player_get_fullscreen (SwfdecPlayer * player);
158 gboolean swfdec_player_get_allow_fullscreen
159 (SwfdecPlayer * player);
160 void swfdec_player_set_allow_fullscreen
161 (SwfdecPlayer * player,
162 gboolean allow);
164 void swfdec_player_render (SwfdecPlayer * player,
165 cairo_t * cr);
166 void swfdec_player_render_with_renderer (SwfdecPlayer * player,
167 cairo_t * cr,
168 SwfdecRenderer * renderer);
169 gulong swfdec_player_advance (SwfdecPlayer * player,
170 gulong msecs);
171 gboolean swfdec_player_mouse_move (SwfdecPlayer * player,
172 double x,
173 double y);
174 gboolean swfdec_player_mouse_press (SwfdecPlayer * player,
175 double x,
176 double y,
177 guint button);
178 gboolean swfdec_player_mouse_release (SwfdecPlayer * player,
179 double x,
180 double y,
181 guint button);
182 gboolean swfdec_player_key_press (SwfdecPlayer * player,
183 guint keycode,
184 guint character);
185 gboolean swfdec_player_key_release (SwfdecPlayer * player,
186 guint keycode,
187 guint character);
188 /* audio - see swfdec_audio.c */
189 const GList * swfdec_player_get_audio (SwfdecPlayer * player);
191 G_END_DECLS
192 #endif