26 #include <libvisual/lv_audio.h>
27 #include <libvisual/lv_palette.h>
28 #include <libvisual/lv_plugin.h>
29 #include <libvisual/lv_video.h>
30 #include <libvisual/lv_time.h>
39 #include <libvisual/lv_intrusive_ptr.hpp>
63 static MorphPtr load (std::string
const& name);
76 VisPluginData* get_plugin ();
94 VisVideoAttrOptions
const* get_video_attribute_options ();
101 void set_video (
VideoPtr const& video);
108 void set_time (
Time const& time);
115 void set_progress (
float progress);
148 friend void intrusive_ptr_add_ref (
Morph const* morph);
149 friend void intrusive_ptr_release (
Morph const* morph);
152 const std::unique_ptr<Impl> m_impl;
154 mutable unsigned int m_ref_count;
156 explicit Morph (std::string
const& name);
159 inline void intrusive_ptr_add_ref (
Morph const* morph)
161 morph->m_ref_count++;
164 inline void intrusive_ptr_release (Morph
const* morph)
166 if (--morph->m_ref_count == 0) {
177 typedef struct _VisMorph VisMorph;
228 VisVideoAttrOptions vidoptions;
255 LV_API VisMorph *visual_morph_new (
const char *name);
256 LV_API
void visual_morph_ref (VisMorph *morph);
257 LV_API
void visual_morph_unref (VisMorph *morph);
259 LV_API VisPluginData *visual_morph_get_plugin (VisMorph *morph);
260 LV_API
VisVideoDepth visual_morph_get_supported_depths (VisMorph *morph);
261 LV_API VisVideoAttrOptions *visual_morph_get_video_attribute_options (VisMorph *morph);
262 LV_API
int visual_morph_requests_audio (VisMorph *morph);
264 LV_API
void visual_morph_set_video (VisMorph *morph,
VisVideo *video);
265 LV_API
void visual_morph_set_time (VisMorph *morph,
VisTime *time);
266 LV_API
void visual_morph_set_progress (VisMorph *morph,
float progress);
268 LV_API
int visual_morph_realize (VisMorph *morph);
270 LV_API
int visual_morph_is_done (VisMorph *morph);
272 LV_API
VisPalette *visual_morph_get_palette (VisMorph *morph);