[vlc-devel] [PATCH 08/12] ActiveX: switch VLCControl to using vlc_player

Sergey Radionov rsatom at gmail.com
Sat Apr 21 18:07:49 CEST 2012


---
 activex/vlccontrol.cpp |  170 ++++++++++++++----------------------------------
 1 files changed, 49 insertions(+), 121 deletions(-)

diff --git a/activex/vlccontrol.cpp b/activex/vlccontrol.cpp
index fa0c09c..dc0aa57 100644
--- a/activex/vlccontrol.cpp
+++ b/activex/vlccontrol.cpp
@@ -124,30 +124,23 @@ STDMETHODIMP VLCControl::put_Visible(VARIANT_BOOL isVisible)
 
 STDMETHODIMP VLCControl::play(void)
 {
-    _p_instance->playlist_play();
+    _p_instance->get_player().play();
+
     return S_OK;
 };
 
 STDMETHODIMP VLCControl::pause(void)
 {
-    libvlc_media_player_t* p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_pause();
-    }
-    return result;
+    _p_instance->get_player().pause();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::stop(void)
 {
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_stop();
-    }
-    return result;
+    _p_instance->get_player().stop();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_Playing(VARIANT_BOOL *isPlaying)
@@ -155,40 +148,27 @@ STDMETHODIMP VLCControl::get_Playing(VARIANT_BOOL *isPlaying)
     if( NULL == isPlaying )
         return E_POINTER;
 
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *isPlaying = libvlc_media_player_is_playing(p_md) ?
-                     VARIANT_TRUE : VARIANT_FALSE;
-    } else *isPlaying = VARIANT_FALSE;
-    return result;
+    vlc_player& p = _p_instance->get_player();
+    *isPlaying = p.is_playing() ? VARIANT_TRUE : VARIANT_FALSE;
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_Position(float *position)
 {
     if( NULL == position )
         return E_POINTER;
-    *position = 0.0f;
 
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *position = libvlc_media_player_get_position(p_md);
-    }
-    return result;
+    *position = _p_instance->get_player().get_position();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::put_Position(float position)
 {
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_set_position(p_md, position);
-    }
-    return result;
+    _p_instance->get_player().set_position(position);
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_Time(int *seconds)
@@ -196,14 +176,9 @@ STDMETHODIMP VLCControl::get_Time(int *seconds)
     if( NULL == seconds )
         return E_POINTER;
 
-    *seconds = 0;
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *seconds = libvlc_media_player_get_time(p_md);
-    }
-    return result;
+    *seconds = static_cast<int>(_p_instance->get_player().get_time());
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::put_Time(int seconds)
@@ -215,69 +190,40 @@ STDMETHODIMP VLCControl::put_Time(int seconds)
 
 STDMETHODIMP VLCControl::shuttle(int seconds)
 {
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        if( seconds < 0 ) seconds = 0;
-        libvlc_media_player_set_time(p_md, (int64_t)seconds);
-    }
-    return result;
+    _p_instance->get_player().set_time(seconds);
 
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::fullscreen(void)
 {
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->toggleFullscreen();
-    }
-    return result;
+    _p_instance->toggleFullscreen();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_Length(int *seconds)
 {
     if( NULL == seconds )
         return E_POINTER;
-    *seconds = 0;
 
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *seconds = (double)libvlc_media_player_get_length(p_md);
-    }
-    return result;
+    *seconds = static_cast<int>(_p_instance->get_player().get_length());
 
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::playFaster(void)
 {
-    int32_t rate = 2;
-
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
+    _p_instance->get_player().set_rate(2.f);
 
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_set_rate(p_md, rate);
-    }
-    return result;
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::playSlower(void)
 {
-    float rate = 0.5;
+    _p_instance->get_player().set_rate(0.5f);
 
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_set_rate(p_md, rate);
-    }
-    return result;
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_Volume(int *volume)
@@ -297,11 +243,9 @@ STDMETHODIMP VLCControl::put_Volume(int volume)
 
 STDMETHODIMP VLCControl::toggleMute(void)
 {
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-        libvlc_audio_toggle_mute(p_md);
-    return result;
+    _p_instance->get_player().toggle_mute();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::setVariable(BSTR, VARIANT)
@@ -693,14 +637,9 @@ STDMETHODIMP VLCControl::get_PlaylistIndex(int *index)
     if( NULL == index )
         return E_POINTER;
 
-    *index = 0;
-    libvlc_instance_t *p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        *index = _p_instance->playlist_get_current_index();
-    }
-    return result;
+    *index = _p_instance->get_player().current_item();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_PlaylistCount(int *count)
@@ -708,41 +647,30 @@ STDMETHODIMP VLCControl::get_PlaylistCount(int *count)
     if( NULL == count )
         return E_POINTER;
 
-    *count = _p_instance->playlist_count();
+    *count = _p_instance->get_player().items_count();
+
     return S_OK;
 };
 
 STDMETHODIMP VLCControl::playlistNext(void)
 {
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_next();
-    }
-    return result;
+    _p_instance->get_player().next();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::playlistPrev(void)
 {
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_prev();
-    }
-    return result;
+    _p_instance->get_player().prev();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::playlistClear(void)
 {
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_clear();
-    }
-    return result;
+    _p_instance->get_player().clear_items();
+
+    return S_OK;
 };
 
 STDMETHODIMP VLCControl::get_VersionInfo(BSTR *version)
-- 
1.7.7.1.msysgit.0




More information about the vlc-devel mailing list