return S_OK;
};
-HRESULT VLCPlugin::getVLCObject(int* i_vlc)
-{
- libvlc_instance_t *p_libvlc;
- HRESULT result = getVLC(&p_libvlc);
- if( SUCCEEDED(result) )
- {
- *i_vlc = libvlc_get_vlc_id(p_libvlc);
- }
- else
- {
- *i_vlc = 0;
- }
- return result;
-}
-
HRESULT VLCPlugin::getVLC(libvlc_instance_t** pp_libvlc)
{
extern HMODULE DllGetModule();
/* common settings */
ppsz_argv[ppsz_argc++] = "--no-stats";
ppsz_argv[ppsz_argc++] = "--no-media-library";
+ ppsz_argv[ppsz_argc++] = "--ignore-config";
ppsz_argv[ppsz_argc++] = "--intf=dummy";
// loop mode is a configuration option only
if( _b_autoloop )
ppsz_argv[ppsz_argc++] = "--loop";
- _p_libvlc = libvlc_new(ppsz_argc, ppsz_argv, NULL);
- if( NULL == _p_libvlc )
+ libvlc_exception_t ex;
+ libvlc_exception_init(&ex);
+
+ _p_libvlc = libvlc_new(ppsz_argc, ppsz_argv, &ex);
+ if( libvlc_exception_raised(&ex) )
{
*pp_libvlc = NULL;
+ libvlc_exception_clear(&ex);
return E_FAIL;
}
_p_libvlc = NULL;
vlcDataObject->onClose();
- libvlc_release(p_libvlc);
+ if( p_libvlc )
+ libvlc_release(p_libvlc);
}
return S_OK;
};
STDMETHODIMP VLCControl::play(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_Play(i_vlc);
STDMETHODIMP VLCControl::pause(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_Pause(i_vlc);
STDMETHODIMP VLCControl::stop(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_Stop(i_vlc);
HRESULT result = NOERROR;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
- *isPlaying = VLC_IsPlaying(i_vlc) ? VARIANT_TRUE : VARIANT_FALSE;
+ if( libvlc_playlist_isplaying(p_libvlc, NULL) )
+ *isPlaying = VARIANT_TRUE;
+ else
+ *isPlaying = VARIANT_FALSE;
return NOERROR;
}
}
HRESULT result = E_UNEXPECTED;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
*position = VLC_PositionGet(i_vlc);
HRESULT result = E_UNEXPECTED;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_PositionSet(i_vlc, position);
HRESULT result = NOERROR;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
*seconds = VLC_TimeGet(i_vlc);
HRESULT result = E_UNEXPECTED;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_TimeSet(i_vlc, seconds, true);
HRESULT result = E_UNEXPECTED;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
- VLC_FullScreen(i_vlc);
+ if( libvlc_playlist_isplaying(p_libvlc, NULL) )
+ {
+ libvlc_media_player_t *p_md =
+ libvlc_playlist_get_media_player(p_libvlc, NULL);
+ if( p_md )
+ {
+ libvlc_toggle_fullscreen(p_md, NULL);
+ libvlc_media_player_release(p_md);
+ }
+ }
}
}
return result;
HRESULT result = NOERROR;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
*seconds = VLC_LengthGet(i_vlc);
HRESULT result = E_UNEXPECTED;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_SpeedFaster(i_vlc);
HRESULT result = E_UNEXPECTED;
if( _p_instance->isRunning() )
{
- int i_vlc;
- result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_SpeedSlower(i_vlc);
STDMETHODIMP VLCControl::toggleMute(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_VolumeMute(i_vlc);
if( 0 == SysStringLen(name) )
return E_INVALIDARG;
- int i_vlc;
- HRESULT hr = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(hr) )
{
int codePage = _p_instance->getCodePage();
if( 0 == SysStringLen(name) )
return E_INVALIDARG;
- int i_vlc;
- HRESULT hr = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(hr) )
{
UINT codePage = _p_instance->getCodePage();
if( 0 == SysStringLen(uri) )
return E_INVALIDARG;
- int i_vlc;
- HRESULT hr = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT hr = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(hr) )
{
char *cUri = CStrFromBSTR(CP_UTF8, uri);
if( NULL == index )
return E_POINTER;
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
*index = VLC_PlaylistIndex(i_vlc);
STDMETHODIMP VLCControl::get_PlaylistCount(int *count)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
*count = VLC_PlaylistNumberOfItems(i_vlc);
STDMETHODIMP VLCControl::playlistNext(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_PlaylistNext(i_vlc);
STDMETHODIMP VLCControl::playlistPrev(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_PlaylistPrev(i_vlc);
STDMETHODIMP VLCControl::playlistClear(void)
{
- int i_vlc;
- HRESULT result = _p_instance->getVLCObject(&i_vlc);
+ libvlc_instance_t *p_libvlc;
+ HRESULT result = _p_instance->getVLC(&p_libvlc);
if( SUCCEEDED(result) )
{
VLC_PlaylistClear(i_vlc);
if( NULL == version )
return E_POINTER;
- const char *versionStr = VLC_Version();
+ const char *versionStr = libvlc_get_version();
if( NULL != versionStr )
{
*version = BSTRFromCStr(CP_UTF8, versionStr);
-
+
return NULL == *version ? E_OUTOFMEMORY : NOERROR;
}
*version = NULL;