diff options
Diffstat (limited to 'avmedia/source/vlc/wrapper/Media.cxx')
-rw-r--r-- | avmedia/source/vlc/wrapper/Media.cxx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/avmedia/source/vlc/wrapper/Media.cxx b/avmedia/source/vlc/wrapper/Media.cxx new file mode 100644 index 000000000000..d2cf5c1b6c6c --- /dev/null +++ b/avmedia/source/vlc/wrapper/Media.cxx @@ -0,0 +1,42 @@ +#include <rtl/ustring.h> +#include "Media.hxx" +#include "SymbolLoader.hxx" +#include "Instance.hxx" + +struct libvlc_instance_t; +namespace VLC +{ + namespace + { + libvlc_media_t* ( *libvlc_media_new_path ) ( libvlc_instance_t *p_instance, const char *path ); + void ( *libvlc_media_release )( libvlc_media_t *p_md ); + + ApiMap VLC_MEDIA_API[] = + { + SYM_MAP( libvlc_media_new_path ), + SYM_MAP( libvlc_media_release ) + }; + + libvlc_media_t* InitMedia( const rtl::OUString& url, VLC::Instance& instance ) + { + rtl::OString dest; + url.convertToString(&dest, RTL_TEXTENCODING_UTF8, 0); + + return libvlc_media_new_path(instance, dest.getStr()); + } + + } + + +Media::Media(const rtl::OUString& url, Instance& instance) +{ + InitApiMap(VLC_MEDIA_API); + mMedia = InitMedia( url, instance ); +} + +Media::~Media() +{ + libvlc_media_release( mMedia ); +} + +} |