libvlc_media_instance_t *p_md = libvlc_playlist_get_media_instance(p_libvlc, &ex);
*track = libvlc_audio_get_track(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( libvlc_exception_raised(&ex) )
{
_p_instance->setErrorInfo(IID_IVLCAudio,
libvlc_media_instance_t *p_md = libvlc_playlist_get_media_instance(p_libvlc, &ex);
libvlc_audio_set_track(p_md, track, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( libvlc_exception_raised(&ex) )
{
_p_instance->setErrorInfo(IID_IVLCAudio,
if( ! libvlc_exception_raised(&ex) )
{
*length = (double)libvlc_media_instance_get_length(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*position = libvlc_media_instance_get_position(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
libvlc_media_instance_set_position(p_md, position, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*time = (double)libvlc_media_instance_get_time(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
libvlc_media_instance_set_time(p_md, (vlc_int64_t)time, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*state = libvlc_media_instance_get_state(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*rate = libvlc_media_instance_get_rate(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
libvlc_media_instance_set_rate(p_md, rate, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*fps = libvlc_media_instance_get_fps(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*hasVout = libvlc_media_instance_has_vout(p_md, &ex) ? VARIANT_TRUE : VARIANT_FALSE;
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*fullscreen = libvlc_get_fullscreen(p_md, &ex) ? VARIANT_TRUE : VARIANT_FALSE;
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
libvlc_set_fullscreen(p_md, VARIANT_FALSE != fullscreen, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*width = libvlc_video_get_width(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
if( ! libvlc_exception_raised(&ex) )
{
*height = libvlc_video_get_height(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
{
char *psz_aspect = libvlc_video_get_aspect_ratio(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
if( NULL == psz_aspect )
libvlc_video_set_aspect_ratio(p_md, psz_aspect, &ex);
CoTaskMemFree(psz_aspect);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( libvlc_exception_raised(&ex) )
{
_p_instance->setErrorInfo(IID_IVLCVideo,
if( ! libvlc_exception_raised(&ex) )
{
*spu = libvlc_video_get_spu(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
libvlc_media_instance_t *p_md = libvlc_playlist_get_media_instance(p_libvlc, &ex);
libvlc_video_set_spu(p_md, spu, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( libvlc_exception_raised(&ex) )
{
_p_instance->setErrorInfo(IID_IVLCVideo, libvlc_exception_get_message(&ex));
{
char *psz_geometry = libvlc_video_get_crop_geometry(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
if( NULL == psz_geometry )
libvlc_video_set_crop_geometry(p_md, psz_geometry, &ex);
CoTaskMemFree(psz_geometry);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( libvlc_exception_raised(&ex) )
{
_p_instance->setErrorInfo(IID_IVLCVideo,
return hr;
};
+STDMETHODIMP VLCVideo::get_teletext(long* page)
+{
+ if( NULL == page )
+ return E_POINTER;
+
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_media_instance_t *p_md = libvlc_playlist_get_media_instance(p_libvlc, &ex);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ *page = libvlc_video_get_teletext(p_md, &ex);
+ libvlc_media_instance_release(p_md);
+ if( ! libvlc_exception_raised(&ex) )
+ {
+ return NOERROR;
+ }
+ }
+ _p_instance->setErrorInfo(IID_IVLCVideo, libvlc_exception_get_message(&ex));
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return hr;
+};
+
+STDMETHODIMP VLCVideo::put_teletext(long page)
+{
+ libvlc_instance_t* p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
+ if( SUCCEEDED(hr) )
+ {
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ libvlc_media_instance_t *p_md = libvlc_playlist_get_media_instance(p_libvlc, &ex);
+ libvlc_video_set_teletext(p_md, page, &ex);
+ libvlc_media_instance_release(p_md);
+ if( libvlc_exception_raised(&ex) )
+ {
+ _p_instance->setErrorInfo(IID_IVLCVideo, libvlc_exception_get_message(&ex));
+ libvlc_exception_clear(&ex);
+ return E_FAIL;
+ }
+ return NOERROR;
+ }
+ return hr;
+};
+
STDMETHODIMP VLCVideo::takeSnapshot(LPPICTUREDISP* picture)
{
if( NULL == picture )
/* take snapshot into file */
libvlc_video_take_snapshot(p_md, psz_filepath, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
hr = E_FAIL;
if( ! libvlc_exception_raised(&ex) )
{
libvlc_toggle_fullscreen(p_md, &ex);
- libvlc_media_instance_destroy_and_detach(p_md);
+ libvlc_media_instance_release(p_md);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
return NOERROR;
};
+STDMETHODIMP VLCControl2::get_BackColor(OLE_COLOR *backcolor)
+{
+ if( NULL == backcolor )
+ return E_POINTER;
+
+ *backcolor = _p_instance->getBackColor();
+ return NOERROR;
+};
+
+STDMETHODIMP VLCControl2::put_BackColor(OLE_COLOR backcolor)
+{
+ _p_instance->setBackColor(backcolor);
+ return NOERROR;
+};
+
STDMETHODIMP VLCControl2::get_audio(IVLCAudio** obj)
{
if( NULL == obj )