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.
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>
25 #include <swfdec/swfdec_as_context.h>
26 #include <swfdec/swfdec_as_types.h>
27 #include <swfdec/swfdec_url.h>
32 SWFDEC_MOUSE_CURSOR_NORMAL
,
33 SWFDEC_MOUSE_CURSOR_NONE
,
34 SWFDEC_MOUSE_CURSOR_TEXT
,
35 SWFDEC_MOUSE_CURSOR_CLICK
39 SWFDEC_ALIGNMENT_TOP_LEFT
,
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
51 SWFDEC_SCALE_SHOW_ALL
,
52 SWFDEC_SCALE_NO_BORDER
,
53 SWFDEC_SCALE_EXACT_FIT
,
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))
77 SwfdecAsContext context
;
78 SwfdecPlayerPrivate
* priv
;
81 struct _SwfdecPlayerClass
83 SwfdecAsContextClass context_class
;
85 void (* advance
) (SwfdecPlayer
* player
,
88 gboolean (* handle_key
) (SwfdecPlayer
* player
,
92 gboolean (* handle_mouse
) (SwfdecPlayer
* player
,
96 void (* missing_plugins
) (SwfdecPlayer
* player
,
97 const char ** details
);
98 gboolean (* query_size
) (SwfdecPlayer
* player
,
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
,
116 void swfdec_player_get_size (SwfdecPlayer
* player
,
119 void swfdec_player_set_size (SwfdecPlayer
* player
,
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
,
136 swfdec_player_get_url (SwfdecPlayer
* player
);
137 void swfdec_player_set_url (SwfdecPlayer
* player
,
138 const SwfdecURL
* url
);
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
,
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
,
164 void swfdec_player_render (SwfdecPlayer
* player
,
166 void swfdec_player_render_with_renderer (SwfdecPlayer
* player
,
168 SwfdecRenderer
* renderer
);
169 gulong
swfdec_player_advance (SwfdecPlayer
* player
,
171 gboolean
swfdec_player_mouse_move (SwfdecPlayer
* player
,
174 gboolean
swfdec_player_mouse_press (SwfdecPlayer
* player
,
178 gboolean
swfdec_player_mouse_release (SwfdecPlayer
* player
,
182 gboolean
swfdec_player_key_press (SwfdecPlayer
* player
,
185 gboolean
swfdec_player_key_release (SwfdecPlayer
* player
,
188 /* audio - see swfdec_audio.c */
189 const GList
* swfdec_player_get_audio (SwfdecPlayer
* player
);