26 #include <libvisual/lv_defines.h>
27 #include <libvisual/lv_types.h>
28 #include <libvisual/lv_video.h>
29 #include <libvisual/lv_plugin.h>
30 #include <libvisual/lv_audio.h>
39 #include <libvisual/lv_intrusive_ptr.hpp>
64 static ActorPtr load (std::string
const& name);
77 VisPluginData* get_plugin ();
115 bool video_negotiate (
VisVideoDepth run_depth,
bool noevent,
bool forced);
124 VisVideoAttrOptions
const* get_video_attribute_options ();
133 void set_video (
VideoPtr const& video);
147 void run (
Audio const& audio);
151 friend void intrusive_ptr_add_ref (
Actor const* actor);
152 friend void intrusive_ptr_release (
Actor const* actor);
155 const std::unique_ptr<Impl> m_impl;
157 mutable unsigned int m_ref_count;
159 explicit Actor (std::string
const& name);
162 inline void intrusive_ptr_add_ref (
Actor const* actor)
164 actor->m_ref_count++;
167 inline void intrusive_ptr_release (Actor
const* actor)
169 if (--actor->m_ref_count == 0) {
180 typedef struct _VisActor VisActor;
205 typedef VisPalette *(*VisPluginActorPaletteFunc)(VisPluginData *plugin);
233 LV_API VisPluginData *visual_actor_get_plugin (VisActor *actor);
235 LV_API
const char *visual_actor_get_prev_by_name_gl (
const char *name);
236 LV_API
const char *visual_actor_get_next_by_name_gl (
const char *name);
237 LV_API
const char *visual_actor_get_prev_by_name_nogl (
const char *name);
238 LV_API
const char *visual_actor_get_next_by_name_nogl (
const char *name);
239 LV_API
const char *visual_actor_get_prev_by_name (
const char *name);
240 LV_API
const char *visual_actor_get_next_by_name (
const char *name);
242 LV_API VisActor *visual_actor_new (
const char *name);
243 LV_API
int visual_actor_realize (VisActor *actor);
244 LV_API
void visual_actor_run (VisActor *actor,
VisAudio *audio);
245 LV_API
void visual_actor_ref (VisActor *actor);
246 LV_API
void visual_actor_unref (VisActor *actor);
248 LV_API
VisSongInfo *visual_actor_get_songinfo (VisActor *actor);
249 LV_API
VisPalette *visual_actor_get_palette (VisActor *actor);
251 LV_API
VisVideoDepth visual_actor_get_supported_depths (VisActor *actor);
252 LV_API VisVideoAttrOptions *visual_actor_get_video_attribute_options (VisActor *actor);
254 LV_API
void visual_actor_set_video (VisActor *actor,
VisVideo *video);
255 LV_API
VisVideo *visual_actor_get_video (VisActor *actor);
257 LV_API
int visual_actor_video_negotiate (VisActor *actor,
VisVideoDepth run_depth,
int noevent,
int forced);