Picasso API  2.9
psx_svg_animation.h
Go to the documentation of this file.
1 
18 #ifndef _PSX_SVG_ANIMATION_H_
19 #define _PSX_SVG_ANIMATION_H_
20 
21 #include "psx_svg.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
45 typedef struct _psx_svg_player psx_svg_player;
46 
50 typedef enum {
64 
68 typedef enum {
82 
91 typedef void (*psx_svg_anim_event_cb)(psx_svg_anim_event_type type, const char* anim_id, void* user_data);
92 
114 PEXPORT psx_svg_player* PICAPI psx_svg_player_create(const psx_svg* root, psx_result* err);
115 
124 PEXPORT void PICAPI psx_svg_player_destroy(psx_svg_player* p);
125 
135 PEXPORT void PICAPI psx_svg_player_set_loop(psx_svg_player* p, bool loop);
136 
147 PEXPORT bool PICAPI psx_svg_player_get_loop(const psx_svg_player* p);
148 
158 PEXPORT void PICAPI psx_svg_player_set_dpi(psx_svg_player* p, int32_t dpi);
159 
170 PEXPORT int32_t PICAPI psx_svg_player_get_dpi(const psx_svg_player* p);
171 
180 PEXPORT void PICAPI psx_svg_player_play(psx_svg_player* p);
181 
190 PEXPORT void PICAPI psx_svg_player_pause(psx_svg_player* p);
191 
200 PEXPORT void PICAPI psx_svg_player_stop(psx_svg_player* p);
201 
211 PEXPORT void PICAPI psx_svg_player_seek(psx_svg_player* p, float seconds);
212 
222 PEXPORT void PICAPI psx_svg_player_tick(psx_svg_player* p, float delta_seconds);
223 
234 PEXPORT float PICAPI psx_svg_player_get_time(const psx_svg_player* p);
235 
246 PEXPORT float PICAPI psx_svg_player_get_duration(const psx_svg_player* p);
247 
259 
269 PEXPORT void PICAPI psx_svg_player_draw(psx_svg_player* p, ps_context* ctx);
270 
281 PEXPORT void PICAPI psx_svg_player_set_event_callback(psx_svg_player* p, psx_svg_anim_event_cb cb, void* user);
282 
295 PEXPORT void PICAPI psx_svg_player_trigger(psx_svg_player* p, const char* target_id, const char* event_name);
296 
308 PEXPORT void PICAPI psx_svg_player_send_key(psx_svg_player* p, char key);
309 
314 #ifdef __cplusplus
315 }
316 #endif
317 
318 #endif /* _PSX_SVG_ANIMATION_H_ */
psx_result
psx_result
Status code return by call APIs.
Definition: picasso_ext.h:36
psx_svg_player_create
PEXPORT psx_svg_player *PICAPI psx_svg_player_create(const psx_svg *root, psx_result *err)
Create a new animation player from an already-parsed SVG document.
psx_svg_player_seek
PEXPORT void PICAPI psx_svg_player_seek(psx_svg_player *p, float seconds)
Seek the animation to an absolute time position.
psx_svg_player_tick
PEXPORT void PICAPI psx_svg_player_tick(psx_svg_player *p, float delta_seconds)
Advance the animation by a relative time delta.
PSX_SVG_ANIM_EVENT_BEGIN
@ PSX_SVG_ANIM_EVENT_BEGIN
Definition: psx_svg_animation.h:72
psx_svg_player
struct _psx_svg_player psx_svg_player
An opaque type represents an svg animation player.
Definition: psx_svg_animation.h:45
psx_svg_anim_event_cb
void(* psx_svg_anim_event_cb)(psx_svg_anim_event_type type, const char *anim_id, void *user_data)
The callback for SVG animation event.
Definition: psx_svg_animation.h:91
psx_svg_player_state
psx_svg_player_state
SVG animation player status.
Definition: psx_svg_animation.h:50
psx_svg_player_trigger
PEXPORT void PICAPI psx_svg_player_trigger(psx_svg_player *p, const char *target_id, const char *event_name)
Send an external event trigger to the player.
PSX_SVG_PLAYER_PAUSED
@ PSX_SVG_PLAYER_PAUSED
Definition: psx_svg_animation.h:62
PSX_SVG_PLAYER_PLAYING
@ PSX_SVG_PLAYER_PLAYING
Definition: psx_svg_animation.h:58
psx_svg_player_send_key
PEXPORT void PICAPI psx_svg_player_send_key(psx_svg_player *p, char key)
Forward a keyboard event to the player.
psx_svg_player_get_loop
PEXPORT bool PICAPI psx_svg_player_get_loop(const psx_svg_player *p)
Return whether the animation looping is enabled.
psx_svg_player_destroy
PEXPORT void PICAPI psx_svg_player_destroy(psx_svg_player *p)
Destroy the psx_svg_player object and release resources.
psx_svg_anim_event_type
psx_svg_anim_event_type
SVG animation event callback types.
Definition: psx_svg_animation.h:68
psx_svg_player_set_event_callback
PEXPORT void PICAPI psx_svg_player_set_event_callback(psx_svg_player *p, psx_svg_anim_event_cb cb, void *user)
Set a callback to receive animation events (begin, end, repeat).
psx_svg_player_get_state
PEXPORT psx_svg_player_state PICAPI psx_svg_player_get_state(const psx_svg_player *p)
Return the current playback state of the player.
psx_svg_player_get_duration
PEXPORT float PICAPI psx_svg_player_get_duration(const psx_svg_player *p)
Return the total duration of the animation.
psx_svg_player_pause
PEXPORT void PICAPI psx_svg_player_pause(psx_svg_player *p)
Pause the animation at the current time.
psx_svg_player_get_dpi
PEXPORT int32_t PICAPI psx_svg_player_get_dpi(const psx_svg_player *p)
Return the current DPI value.
PSX_SVG_ANIM_EVENT_END
@ PSX_SVG_ANIM_EVENT_END
Definition: psx_svg_animation.h:76
PSX_SVG_PLAYER_STOPPED
@ PSX_SVG_PLAYER_STOPPED
Definition: psx_svg_animation.h:54
psx_svg_player_draw
PEXPORT void PICAPI psx_svg_player_draw(psx_svg_player *p, ps_context *ctx)
Draw the current animation frame into the provided Picasso context.
psx_svg_player_get_time
PEXPORT float PICAPI psx_svg_player_get_time(const psx_svg_player *p)
Return the current playback time in seconds.
psx_svg_player_stop
PEXPORT void PICAPI psx_svg_player_stop(psx_svg_player *p)
Stop the animation and seek to time 0.
psx_svg_player_set_loop
PEXPORT void PICAPI psx_svg_player_set_loop(psx_svg_player *p, bool loop)
Set whether the animation should loop when it reaches the end.
ps_context
struct _ps_context ps_context
An opaque type represents a Picasso drawing environment.
Definition: picasso.h:109
psx_svg
struct _psx_svg psx_svg
An opaque type represents an svg document.
Definition: psx_svg.h:48
psx_svg_player_set_dpi
PEXPORT void PICAPI psx_svg_player_set_dpi(psx_svg_player *p, int32_t dpi)
Set the DPI (dots per inch) used for unit conversion.
psx_svg.h
PSX_SVG_ANIM_EVENT_REPEAT
@ PSX_SVG_ANIM_EVENT_REPEAT
Definition: psx_svg_animation.h:80
psx_svg_player_play
PEXPORT void PICAPI psx_svg_player_play(psx_svg_player *p)
Start or resume playback of the animation.