Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
97823006
Commit
97823006
authored
Sep 26, 2006
by
Damien Fouilleul
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- activex: more features and fully updated test.html for new APIs
parent
6ff95ea3
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
479 additions
and
771 deletions
+479
-771
activex/Makefile.am
activex/Makefile.am
+4
-6
activex/axvlc.idl
activex/axvlc.idl
+6
-16
activex/axvlc.inf.in
activex/axvlc.inf.in
+1
-1
activex/axvlc.tlb
activex/axvlc.tlb
+0
-0
activex/axvlc_idl.c
activex/axvlc_idl.c
+0
-1
activex/axvlc_idl.h
activex/axvlc_idl.h
+136
-300
activex/plugin.cpp
activex/plugin.cpp
+26
-15
activex/test.html
activex/test.html
+146
-89
activex/vlcconfiguration.cpp
activex/vlcconfiguration.cpp
+0
-235
activex/vlcconfiguration.h
activex/vlcconfiguration.h
+0
-87
activex/vlccontrol2.cpp
activex/vlccontrol2.cpp
+135
-10
activex/vlccontrol2.h
activex/vlccontrol2.h
+25
-11
No files found.
activex/Makefile.am
View file @
97823006
...
...
@@ -38,8 +38,6 @@ SOURCES_activex = \
viewobject.h
\
vlccontrol.cpp
\
vlccontrol.h
\
vlcconfiguration.cpp
\
vlcconfiguration.h
\
vlccontrol2.cpp
\
vlccontrol2.h
\
plugin.cpp
\
...
...
@@ -80,10 +78,10 @@ LDFLAGS_activex = `$(VLC_CONFIG) --libs activex vlc builtin`
libaxvlc_a_SOURCES
=
$(SOURCES_activex)
$(SOURCE_dll)
libaxvlc_a_CFLAGS
=
`
$(VLC_CONFIG)
--cflags
activex
`
libaxvlc_a_CXXFLAGS
=
`
$(VLC_CONFIG)
--cxxflags
activex
`
libaxvlc_a_DEPENDENCIES
=
axvlc.def
$(DATA_axvlc_rc)
libaxvlc_a_DEPENDENCIES
=
axvlc.def
$(DATA_axvlc_rc)
$(LIBRARIES_libvlc)
axvlc$(LIBEXT)
:
$(libaxvlc_a_OBJECTS)
\
$(libaxvlc_a_DEPENDENCIES) stamp-
pic
$(libaxvlc_a_DEPENDENCIES) stamp-
builtin
$(CXXLINK)
$(libaxvlc_a_OBJECTS)
$(DATA_axvlc_rc)
\
$(srcdir)
/axvlc.def
\
$(LIBRARIES_libvlc)
-shared
$(LIBRARIES_libvlc)
$(LDFLAGS_activex)
\
...
...
@@ -140,9 +138,9 @@ clean-stamp:
rm
-f
stamp-pic
if
BUILD_SHARED
stamp-
pic
:
stamp-
builtin
:
else
stamp-
pic
:
$(shell ${VLC_CONFIG} --target builtin)
stamp-
builtin
:
$(shell ${VLC_CONFIG} --target builtin)
endif
@
touch
$@
...
...
activex/axvlc.idl
View file @
97823006
...
...
@@ -208,7 +208,7 @@ library AXVLC
interface
IVLCInput
:
IDispatch
{
[
propget
,
helpstring
(
"Returns the clip length, in milliseconds."
)
]
HRESULT
length
(
[
out
,
retval
]
__int64
*
length
)
;
HRESULT
length
(
[
out
,
retval
]
double
*
length
)
;
[
propget
,
helpstring
(
"Returns/sets playback position in current clip. Position is ranging from 0.0 to 1.0."
)
]
HRESULT
position
(
[
out
,
retval
]
float
*
position
)
;
...
...
@@ -216,9 +216,9 @@ library AXVLC
HRESULT
position
(
[
in
]
float
position
)
;
[
propget
,
helpstring
(
"Returns/sets playback time in current clip, in milliseconds."
)
]
HRESULT
time
(
[
out
,
retval
]
__int64
*
time
)
;
HRESULT
time
(
[
out
,
retval
]
double
*
time
)
;
[
propput
,
helpstring
(
"Returns/sets playback time in the current clip, in milliseconds."
)
]
HRESULT
time
(
[
in
]
__int64
time
)
;
HRESULT
time
(
[
in
]
double
time
)
;
[
propget
,
helpstring
(
"Returns current playback state."
)
]
HRESULT
state
(
[
out
,
retval
]
int
*
state
)
;
...
...
@@ -301,12 +301,12 @@ library AXVLC
[
odl
,
uuid
(
15179
CD8
-
CC12
-
4242
-
A58E
-
E412217FF34
3
),
helpstring
(
"VLC Con
figuration options
"
),
uuid
(
2
D719729
-
5333
-
406
C
-
BF12
-
8
DE787FD65E
3
),
helpstring
(
"VLC Con
trol
"
),
dual
,
oleautomation
]
interface
IVLCCon
figuration
:
IDispatch
interface
IVLCCon
trol2
:
IDispatch
{
[
id
(
DISPID_AutoLoop
),
propget
,
helpstring
(
"Returns/sets a value that determines whether the playlist is looped"
)
]
HRESULT
AutoLoop
(
[
out
,
retval
]
VARIANT_BOOL
*
autoloop
)
;
...
...
@@ -345,17 +345,7 @@ library AXVLC
HRESULT
Volume
(
[
out
,
retval
]
int
*
volume
)
;
[
id
(
DISPID_Volume
),
propput
,
helpstring
(
"Returns/sets default audio volume."
)
]
HRESULT
Volume
(
[
in
]
int
volume
)
;
}
;
[
odl
,
uuid
(
2
D719729
-
5333
-
406
C
-
BF12
-
8
DE787FD65E3
),
helpstring
(
"VLC Control"
),
dual
,
oleautomation
]
interface
IVLCControl2
:
IVLCConfiguration
{
[
propget
,
helpstring
(
"Returns the audio object."
)
]
HRESULT
audio
(
[
out
,
retval
]
IVLCAudio
**
obj
)
;
...
...
activex/axvlc.inf.in
View file @
97823006
...
...
@@ -10,7 +10,7 @@
[axvlc.dll]
FileVersion=@VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_REVISION@,0
clsid={
E23FE9C6-778E-49d4-B537-38FCDE4887D8
}
clsid={
9BE31822-FDAD-461B-AD51-BE1D1C159921
}
RegisterServer=no
Hook=runinstaller
...
...
activex/axvlc.tlb
View file @
97823006
No preview for this file type
activex/axvlc_idl.c
View file @
97823006
...
...
@@ -17,7 +17,6 @@ DEFINE_GUID(IID_IVLCAudio, 0x9e0bd17b, 0x2d3c, 0x4656, 0xb9,0x4d, 0x03,0x08,0x4f
DEFINE_GUID
(
IID_IVLCInput
,
0x49e0dbd1
,
0x9440
,
0x466c
,
0x9c
,
0x97
,
0x95
,
0xc6
,
0x71
,
0x90
,
0xc6
,
0x03
);
DEFINE_GUID
(
IID_IVLCPlaylist
,
0x54613049
,
0x40bf
,
0x4035
,
0x9e
,
0x70
,
0x0a
,
0x93
,
0x12
,
0xc0
,
0x18
,
0x8d
);
DEFINE_GUID
(
IID_IVLCVideo
,
0x0aaedf0b
,
0xd333
,
0x4b27
,
0xa0
,
0xc6
,
0xbb
,
0xf3
,
0x14
,
0x13
,
0xa4
,
0x2e
);
DEFINE_GUID
(
IID_IVLCConfiguration
,
0x15179cd8
,
0xcc12
,
0x4242
,
0xa5
,
0x8e
,
0xe4
,
0x12
,
0x21
,
0x7f
,
0xf3
,
0x43
);
DEFINE_GUID
(
IID_IVLCControl2
,
0x2d719729
,
0x5333
,
0x406c
,
0xbf
,
0x12
,
0x8d
,
0xe7
,
0x87
,
0xfd
,
0x65
,
0xe3
);
DEFINE_GUID
(
CLSID_VLCPlugin
,
0xe23fe9c6
,
0x778e
,
0x49d4
,
0xb5
,
0x37
,
0x38
,
0xfc
,
0xde
,
0x48
,
0x87
,
0xd8
);
DEFINE_GUID
(
CLSID_VLCPlugin2
,
0x9be31822
,
0xfdad
,
0x461b
,
0xad
,
0x51
,
0xbe
,
0x1d
,
0x1c
,
0x15
,
0x99
,
0x21
);
...
...
activex/axvlc_idl.h
View file @
97823006
This diff is collapsed.
Click to expand it.
activex/plugin.cpp
View file @
97823006
...
...
@@ -520,7 +520,7 @@ HRESULT VLCPlugin::onLoad(void)
if
(
UrlIsW
(
base_url
,
URLIS_URL
)
)
{
/* copy base URL */
_bstr_
m
rl
=
SysAllocString
(
base_url
);
_bstr_
baseu
rl
=
SysAllocString
(
base_url
);
}
CoTaskMemFree
(
base_url
);
}
...
...
@@ -630,23 +630,34 @@ HRESULT VLCPlugin::getVLC(libvlc_instance_t** pp_libvlc)
if
(
SysStringLen
(
_bstr_mrl
)
>
0
)
{
char
*
psz_mrl
=
NULL
;
DWORD
len
=
INTERNET_MAX_URL_LENGTH
;
LPOLESTR
abs_url
=
(
LPOLESTR
)
CoTaskMemAlloc
(
sizeof
(
OLECHAR
)
*
len
);
if
(
NULL
!=
abs_url
)
if
(
SysStringLen
(
_bstr_baseurl
)
>
0
)
{
/*
** if the MRL a relative URL, we should end up with an absolute URL
*/
if
(
SUCCEEDED
(
UrlCombineW
(
_bstr_baseurl
,
_bstr_mrl
,
abs_url
,
&
len
,
URL_ESCAPE_UNSAFE
|
URL_PLUGGABLE_PROTOCOL
))
)
DWORD
len
=
INTERNET_MAX_URL_LENGTH
;
LPOLESTR
abs_url
=
(
LPOLESTR
)
CoTaskMemAlloc
(
sizeof
(
OLECHAR
)
*
len
);
if
(
NULL
!=
abs_url
)
{
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
abs_url
);
}
else
{
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
_bstr_mrl
);
/*
** if the MRL a relative URL, we should end up with an absolute URL
*/
if
(
SUCCEEDED
(
UrlCombineW
(
_bstr_baseurl
,
_bstr_mrl
,
abs_url
,
&
len
,
URL_ESCAPE_UNSAFE
|
URL_PLUGGABLE_PROTOCOL
))
)
{
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
abs_url
);
}
else
{
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
_bstr_mrl
);
}
CoTaskMemFree
(
abs_url
);
}
CoTaskMemFree
(
abs_url
);
}
else
{
/*
** baseURL is empty, assume MRL is absolute
*/
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
_bstr_mrl
);
}
if
(
NULL
!=
psz_mrl
)
{
...
...
activex/test.html
View file @
97823006
...
...
@@ -44,8 +44,8 @@ Insert MSComctlLib.Slider.2 activex control
<DIV
id=
"info"
style=
"text-align:center"
>
-:--:--/-:--:--
</DIV>
</TD></TR>
<TR><TD
colspan=
"2"
>
<INPUT
type=
button
id=
"PlayOrPause"
value=
" Play "
onClick=
'doPlayOrPause()'
>
<INPUT
type=
button
value=
"Stop"
onClick=
'do
cument.getElementById("vlc").playlist.s
top();'
>
<INPUT
type=
button
id=
"PlayOrPause"
value=
" Play "
onClick=
'doPlayOrPause()
;
'
>
<INPUT
type=
button
value=
"Stop"
onClick=
'do
S
top();'
>
<INPUT
type=
button
value=
" << "
onClick=
'doPlaySlower();'
>
<INPUT
type=
button
value=
" >> "
onClick=
'doPlayFaster();'
>
...
...
@@ -53,7 +53,7 @@ Insert MSComctlLib.Slider.2 activex control
<INPUT
type=
button
value=
"Show"
onClick=
'document.getElementById("vlc").Visible = true;'
>
<INPUT
type=
button
value=
"Hide"
onClick=
'document.getElementById("vlc").Visible = false;'
>
<INPUT
type=
button
value=
"Version"
onClick=
'alert(document.getElementById("vlc").VersionInfo);'
>
<INPUT
type=
button
id=
"VersionBut"
value=
"Version"
onClick=
'alert(document.getElementById("vlc").VersionInfo);'
>
<SPAN
style=
"text-align:center"
>
Volume:
</SPAN>
<INPUT
type=
button
value=
" - "
onClick=
'updateVolume(-10)'
>
<SPAN
id=
"volumeTextField"
style=
"text-align: center"
>
--
</SPAN>
...
...
@@ -62,108 +62,115 @@ Insert MSComctlLib.Slider.2 activex control
</TD>
</TR>
</TABLE>
<SCRIPT
LANGUAGE=
"JS
cript"
>
<SCRIPT
language=
"javas
cript"
>
<!--
var sliderTimerId = 0;
var prevState = 0;
var monitorTimerId = 0;
var sliderScrolling = false;
document.onreadystatechange=onVLCStateChange;
function onVLCStateChange()
{
if( document.readyState == 'complete' )
{
updateVolume(0);
}
};
function updateVolume(deltaVol)
{
var vlc = document.getElementById("vlc");
vlc.audio.volume += deltaVol;
document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";
};
function formatTime(timeVal)
{
var timeHour =
timeVal
;
var timeHour =
Math.round(timeVal / 1000)
;
var timeSec = timeHour % 60;
if( timeSec < 10 )
timeSec = '0'+timeSec;
timeSec = '0'+timeSec;
timeHour = (timeHour - timeSec)/60;
var timeMin = timeHour % 60;
if( timeMin < 10 )
timeMin = '0'+timeMin;
timeMin = '0'+timeMin;
timeHour = (timeHour - timeMin)/60;
if( timeHour > 0 )
return timeHour+":"+timeMin+":"+timeSec;
return timeHour+":"+timeMin+":"+timeSec;
else
return timeMin+":"+timeSec;
return timeMin+":"+timeSec;
};
function onPlay()
{
document.getElementById("PlayOrPause").value = "Pause";
};
function onPause()
{
document.getElementById("PlayOrPause").value = " Play ";
};
function onStop()
function monitor()
{
if( slider.Enabled )
var vlc = document.getElementById("vlc");
var newState = vlc.input.state;
if( prevState != newState )
{
slider.Value = slider.Min;
slider.Enabled = false;
if( newState == 0 )
{
// current media has stopped
onStop();
}
else if( newState == 1 )
{
// current media is openning/connecting
onOpen();
}
else if( newState == 2 )
{
// current media is buffering data
onBuffer();
}
else if( newState == 3 )
{
// current media is now playing
onPlay();
}
else if( vlc.input.state == 4 )
{
// current media is now paused
onPause();
}
prevState = newState;
}
info.innerText = "-:--:--/-:--:--";
document.getElementById("PlayOrPause").value = " Play ";
else if( newState == 3 )
{
// current media is playing
onPlaying();
}
monitorTimerId = setTimeout("monitor()", 1000);
};
var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");
var liveFeedRoll = 0;
/* actions */
function doUpdate()
function doGo(targetURL)
{
var vlc = document.getElementById("vlc");
var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear");
vlc.playlist.clear();
vlc.playlist.add(targetURL, null, options);
vlc.playlist.play();
if( monitorTimerId == 0 )
{
monitor();
}
};
function doPlayOrPause()
{
var vlc = document.getElementById("vlc");
if( vlc.playlist.isPlaying )
{
if( ! sliderScrolling )
{
if( vlc.input.length > 0 )
{
// seekable stream
slider.Enabled = true;
slider.Max = vlc.input.length;
slider.Value = vlc.input.time;
info.innerText = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);
document.getElementById("PlayOrPause").Enabled = true;
}
else {
// non-seekable "live" stream
if( slider.Enabled )
{
slider.Value = slider.Min;
slider.Enabled = false;
}
liveFeedRoll = liveFeedRoll & 3;
info.innerText = liveFeedText[liveFeedRoll++];
}
}
sliderTimerId = setTimeout("doUpdate()", 1000);
vlc.playlist.togglePause();
}
else
{
onStop();
sliderTimerId = 0;
vlc.playlist.play();
if( monitorTimerId == 0 )
{
monitor();
}
}
};
function do
Go(targetURL
)
function do
Stop(
)
{
var options = new Array(":vout-filter=deinterlace", ":deinterlace-mode=linear"
);
document.getElementById("vlc").playlist.add(targetURL, null, options);
};
function doPlayOrPause()
{
var vlc = document.getElementById("vlc");
vlc.playlist.togglePause
();
document.getElementById("vlc").playlist.stop(
);
if( monitorTimerId != 0 )
{
clearTimeout(monitorTimerId);
monitorTimerId = 0;
}
onStop
();
};
function doPlaySlower()
{
...
...
@@ -175,51 +182,101 @@ function doPlayFaster()
var vlc = document.getElementById("vlc");
vlc.input.rate = vlc.input.rate * 2;
};
function vlc::Play()
/* events */
function onOpen()
{
document.getElementById("info").innerHTML = "Opening...";
document.getElementById("PlayOrPause").value = "Pause";
};
function onBuffer()
{
document.getElementById("info").innerHTML = "Buffering...";
document.getElementById("PlayOrPause").value = "Pause";
};
function onPlay()
{
onPlaying();
document.getElementById("PlayOrPause").value = "Pause";
};
var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");
var liveFeedRoll = 0;
function onPlaying()
{
if( ! slider
TimerId
)
if( ! slider
Scrolling
)
{
sliderTimerId = setTimeout("doUpdate()", 1000);
var slider = document.getElementById("slider");
if( vlc.input.length > 0 )
{
// seekable media
slider.Enabled = true;
slider.Max = vlc.input.length/1000;
slider.Value = vlc.input.time/1000;
info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);
}
else
{
// non-seekable "live" media
if( slider.Enabled )
{
slider.Value = slider.Min;
slider.Enabled = false;
}
liveFeedRoll = liveFeedRoll & 3;
info.innerHTML = liveFeedText[liveFeedRoll++];
}
}
onPlay();
};
function vlc::Pause()
function onPause()
{
document.getElementById("PlayOrPause").value = " Play ";
};
function onStop()
{
if( slider
TimerI
d )
if( slider
.Enable
d )
{
clearTimeout(sliderTimerId)
slider
TimerId = 0
;
slider.Value = slider.Min;
slider
.Enabled = false
;
}
onPause();
document.getElementById("info").innerHTML = "-:--:--/-:--:--";
document.getElementById("PlayOrPause").value = " Play ";
};
function vlc::Stop()
//-->
</SCRIPT>
<SCRIPT
language=
"JScript"
>
<!--
document.onreadystatechange=onVLCStateChange;
function onVLCStateChange()
{
if(
sliderTimerId
)
if(
document.readyState == 'complete'
)
{
clearTimeout(sliderTimerId)
sliderTimerId = 0;
updateVolume(0);
}
onStop();
};
function slider::Scroll()
{
var newPos = slider.Value * 1000;
var vlc = document.getElementById("vlc");
slider.Text = formatTime(
slider.Value
);
info.inner
Text
= slider.Text+"/"+formatTime(vlc.input.length);
if(
vlc.Time != slider.Value
)
slider.Text = formatTime(
newPos
);
info.inner
HTML
= slider.Text+"/"+formatTime(vlc.input.length);
if(
(vlc.input.state == 3) && (vlc.input.time != newPos)
)
{
vlc.
Time = slider.Value
;
vlc.
input.time = newPos
;
}
sliderScrolling = true;
};
function slider::Change()
{
var newPos = slider.Value * 1000;
if( sliderScrolling )
{
sliderScrolling = false;
}
else if(
vlc.Time != slider.Value
)
else if(
(vlc.input.state == 3) && (vlc.input.time != newPos)
)
{
vlc.
Time = slider.Value
;
vlc.
input.time = newPos
;
}
};
//-->
...
...
activex/vlcconfiguration.cpp
deleted
100755 → 0
View file @
6ff95ea3
/*****************************************************************************
* VLCConfiguration.cpp: ActiveX control for VLC
*****************************************************************************
* Copyright (C) 2005 the VideoLAN team
*
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include "plugin.h"
#include "vlcconfiguration.h"
#include "utils.h"
using
namespace
std
;
VLCConfiguration
::~
VLCConfiguration
()
{
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
};
HRESULT
VLCConfiguration
::
loadTypeInfo
(
void
)
{
HRESULT
hr
=
NOERROR
;
if
(
NULL
==
_p_typeinfo
)
{
ITypeLib
*
p_typelib
;
hr
=
_p_instance
->
getTypeLib
(
LOCALE_USER_DEFAULT
,
&
p_typelib
);
if
(
SUCCEEDED
(
hr
)
)
{
hr
=
p_typelib
->
GetTypeInfoOfGuid
(
IID_IVLCConfiguration
,
&
_p_typeinfo
);
if
(
FAILED
(
hr
)
)
{
_p_typeinfo
=
NULL
;
}
p_typelib
->
Release
();
}
}
return
hr
;
};
STDMETHODIMP
VLCConfiguration
::
GetTypeInfoCount
(
UINT
*
pctInfo
)
{
if
(
NULL
==
pctInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
*
pctInfo
=
1
;
else
*
pctInfo
=
0
;
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
GetTypeInfo
(
UINT
iTInfo
,
LCID
lcid
,
LPTYPEINFO
*
ppTInfo
)
{
if
(
NULL
==
ppTInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
{
_p_typeinfo
->
AddRef
();
*
ppTInfo
=
_p_typeinfo
;
return
NOERROR
;
}
*
ppTInfo
=
NULL
;
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCConfiguration
::
GetIDsOfNames
(
REFIID
riid
,
LPOLESTR
*
rgszNames
,
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispID
)
{
if
(
SUCCEEDED
(
loadTypeInfo
())
)
{
return
DispGetIDsOfNames
(
_p_typeinfo
,
rgszNames
,
cNames
,
rgDispID
);
}
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCConfiguration
::
Invoke
(
DISPID
dispIdMember
,
REFIID
riid
,
LCID
lcid
,
WORD
wFlags
,
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
)
{
if
(
SUCCEEDED
(
loadTypeInfo
())
)
{
return
DispInvoke
(
this
,
_p_typeinfo
,
dispIdMember
,
wFlags
,
pDispParams
,
pVarResult
,
pExcepInfo
,
puArgErr
);
}
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCConfiguration
::
get_AutoLoop
(
VARIANT_BOOL
*
autoloop
)
{
if
(
NULL
==
autoloop
)
return
E_POINTER
;
*
autoloop
=
_p_instance
->
getAutoLoop
()
?
VARIANT_TRUE
:
VARIANT_FALSE
;
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
put_AutoLoop
(
VARIANT_BOOL
autoloop
)
{
_p_instance
->
setAutoLoop
((
VARIANT_FALSE
!=
autoloop
)
?
TRUE
:
FALSE
);
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
get_AutoPlay
(
VARIANT_BOOL
*
autoplay
)
{
if
(
NULL
==
autoplay
)
return
E_POINTER
;
*
autoplay
=
_p_instance
->
getAutoPlay
()
?
VARIANT_TRUE
:
VARIANT_FALSE
;
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
put_AutoPlay
(
VARIANT_BOOL
autoplay
)
{
_p_instance
->
setAutoPlay
((
VARIANT_FALSE
!=
autoplay
)
?
TRUE
:
FALSE
);
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
get_BaseURL
(
BSTR
*
url
)
{
if
(
NULL
==
url
)
return
E_POINTER
;
*
url
=
SysAllocStringLen
(
_p_instance
->
getBaseURL
(),
SysStringLen
(
_p_instance
->
getBaseURL
()));
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
put_BaseURL
(
BSTR
mrl
)
{
_p_instance
->
setBaseURL
(
mrl
);
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
get_MRL
(
BSTR
*
mrl
)
{
if
(
NULL
==
mrl
)
return
E_POINTER
;
*
mrl
=
SysAllocStringLen
(
_p_instance
->
getMRL
(),
SysStringLen
(
_p_instance
->
getMRL
()));
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
put_MRL
(
BSTR
mrl
)
{
_p_instance
->
setMRL
(
mrl
);
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
get_StartTime
(
int
*
seconds
)
{
if
(
NULL
==
seconds
)
return
E_POINTER
;
*
seconds
=
_p_instance
->
getStartTime
();
return
S_OK
;
};
STDMETHODIMP
VLCConfiguration
::
put_StartTime
(
int
seconds
)
{
_p_instance
->
setStartTime
(
seconds
);
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
get_VersionInfo
(
BSTR
*
version
)
{
if
(
NULL
==
version
)
return
E_POINTER
;
const
char
*
versionStr
=
VLC_Version
();
if
(
NULL
!=
versionStr
)
{
*
version
=
BSTRFromCStr
(
_p_instance
->
getCodePage
(),
versionStr
);
return
NULL
==
*
version
?
E_OUTOFMEMORY
:
NOERROR
;
}
*
version
=
NULL
;
return
E_FAIL
;
};
STDMETHODIMP
VLCConfiguration
::
get_Visible
(
VARIANT_BOOL
*
isVisible
)
{
if
(
NULL
==
isVisible
)
return
E_POINTER
;
*
isVisible
=
_p_instance
->
getVisible
()
?
VARIANT_TRUE
:
VARIANT_FALSE
;
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
put_Visible
(
VARIANT_BOOL
isVisible
)
{
_p_instance
->
setVisible
(
isVisible
!=
VARIANT_FALSE
);
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
get_Volume
(
int
*
volume
)
{
if
(
NULL
==
volume
)
return
E_POINTER
;
*
volume
=
_p_instance
->
getVolume
();
return
NOERROR
;
};
STDMETHODIMP
VLCConfiguration
::
put_Volume
(
int
volume
)
{
_p_instance
->
setVolume
(
volume
);
return
NOERROR
;
};
activex/vlcconfiguration.h
deleted
100755 → 0
View file @
6ff95ea3
/*****************************************************************************
* VLCConfiguration.h: ActiveX control for VLC
*****************************************************************************
* Copyright (C) 2005 the VideoLAN team
*
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef _VLCCONFIGURATION_H_
#define _VLCCONFIGURATION_H_
#include "axvlc_idl.h"
class
VLCConfiguration
:
public
IVLCConfiguration
{
public:
VLCConfiguration
(
VLCPlugin
*
p_instance
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
)
{};
virtual
~
VLCConfiguration
();
// IUnknown methods
STDMETHODIMP
QueryInterface
(
REFIID
riid
,
void
**
ppv
)
{
if
(
NULL
==
ppv
)
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCConfiguration
==
riid
)
)
{
AddRef
();
*
ppv
=
reinterpret_cast
<
LPVOID
>
(
this
);
return
NOERROR
;
}
return
_p_instance
->
pUnkOuter
->
QueryInterface
(
riid
,
ppv
);
};
STDMETHODIMP_
(
ULONG
)
AddRef
(
void
)
{
return
_p_instance
->
pUnkOuter
->
AddRef
();
};
STDMETHODIMP_
(
ULONG
)
Release
(
void
)
{
return
_p_instance
->
pUnkOuter
->
Release
();
};
// IDispatch methods
STDMETHODIMP
GetTypeInfoCount
(
UINT
*
);
STDMETHODIMP
GetTypeInfo
(
UINT
,
LCID
,
LPTYPEINFO
*
);
STDMETHODIMP
GetIDsOfNames
(
REFIID
,
LPOLESTR
*
,
UINT
,
LCID
,
DISPID
*
);
STDMETHODIMP
Invoke
(
DISPID
,
REFIID
,
LCID
,
WORD
,
DISPPARAMS
*
,
VARIANT
*
,
EXCEPINFO
*
,
UINT
*
);
/* IVLCConfiguration methods */
STDMETHODIMP
get_AutoLoop
(
VARIANT_BOOL
*
autoloop
);
STDMETHODIMP
put_AutoLoop
(
VARIANT_BOOL
autoloop
);
STDMETHODIMP
get_AutoPlay
(
VARIANT_BOOL
*
autoplay
);
STDMETHODIMP
put_AutoPlay
(
VARIANT_BOOL
autoplay
);
STDMETHODIMP
get_BaseURL
(
BSTR
*
url
);
STDMETHODIMP
put_BaseURL
(
BSTR
url
);
STDMETHODIMP
get_MRL
(
BSTR
*
mrl
);
STDMETHODIMP
put_MRL
(
BSTR
mrl
);
STDMETHODIMP
get_StartTime
(
int
*
seconds
);
STDMETHODIMP
put_StartTime
(
int
seconds
);
STDMETHODIMP
get_VersionInfo
(
BSTR
*
version
);
STDMETHODIMP
get_Visible
(
VARIANT_BOOL
*
visible
);
STDMETHODIMP
put_Visible
(
VARIANT_BOOL
visible
);
STDMETHODIMP
get_Volume
(
int
*
volume
);
STDMETHODIMP
put_Volume
(
int
volume
);
protected:
virtual
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
};
#endif
activex/vlccontrol2.cpp
View file @
97823006
...
...
@@ -148,8 +148,6 @@ STDMETHODIMP VLCAudio::put_mute(VARIANT_BOOL mute)
return
hr
;
};
#include <iostream>
STDMETHODIMP
VLCAudio
::
get_volume
(
int
*
volume
)
{
if
(
NULL
==
volume
)
...
...
@@ -163,7 +161,6 @@ STDMETHODIMP VLCAudio::get_volume(int* volume)
libvlc_exception_init
(
&
ex
);
*
volume
=
libvlc_audio_get_volume
(
p_libvlc
,
&
ex
);
cerr
<<
"volume is "
<<
*
volume
;
if
(
libvlc_exception_raised
(
&
ex
)
)
{
libvlc_exception_clear
(
&
ex
);
...
...
@@ -293,7 +290,7 @@ STDMETHODIMP VLCInput::Invoke(DISPID dispIdMember, REFIID riid,
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCInput
::
get_length
(
__int64
*
length
)
STDMETHODIMP
VLCInput
::
get_length
(
double
*
length
)
{
if
(
NULL
==
length
)
return
E_POINTER
;
...
...
@@ -308,7 +305,7 @@ STDMETHODIMP VLCInput::get_length(__int64* length)
libvlc_input_t
*
p_input
=
libvlc_playlist_get_input
(
p_libvlc
,
&
ex
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
*
length
=
(
__int64
)
libvlc_input_get_length
(
p_input
,
&
ex
);
*
length
=
(
double
)
libvlc_input_get_length
(
p_input
,
&
ex
);
libvlc_input_free
(
p_input
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
...
...
@@ -374,7 +371,7 @@ STDMETHODIMP VLCInput::put_position(float position)
return
hr
;
};
STDMETHODIMP
VLCInput
::
get_time
(
__int64
*
time
)
STDMETHODIMP
VLCInput
::
get_time
(
double
*
time
)
{
if
(
NULL
==
time
)
return
E_POINTER
;
...
...
@@ -389,7 +386,7 @@ STDMETHODIMP VLCInput::get_time(__int64* time)
libvlc_input_t
*
p_input
=
libvlc_playlist_get_input
(
p_libvlc
,
&
ex
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
*
time
=
libvlc_input_get_time
(
p_input
,
&
ex
);
*
time
=
(
double
)
libvlc_input_get_time
(
p_input
,
&
ex
);
libvlc_input_free
(
p_input
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
...
...
@@ -402,7 +399,7 @@ STDMETHODIMP VLCInput::get_time(__int64* time)
return
hr
;
};
STDMETHODIMP
VLCInput
::
put_time
(
__int64
time
)
STDMETHODIMP
VLCInput
::
put_time
(
double
time
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
...
...
@@ -414,7 +411,7 @@ STDMETHODIMP VLCInput::put_time(__int64 time)
libvlc_input_t
*
p_input
=
libvlc_playlist_get_input
(
p_libvlc
,
&
ex
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
libvlc_input_set_time
(
p_input
,
time
,
&
ex
);
libvlc_input_set_time
(
p_input
,
(
vlc_int64_t
)
time
,
&
ex
);
libvlc_input_free
(
p_input
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
...
...
@@ -1103,7 +1100,6 @@ STDMETHODIMP VLCVideo::get_height(int* height)
/*******************************************************************************/
VLCControl2
::
VLCControl2
(
VLCPlugin
*
p_instance
)
:
VLCConfiguration
(
p_instance
),
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_p_vlcaudio
(
NULL
),
...
...
@@ -1198,6 +1194,135 @@ STDMETHODIMP VLCControl2::Invoke(DISPID dispIdMember, REFIID riid,
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCControl2
::
get_AutoLoop
(
VARIANT_BOOL
*
autoloop
)
{
if
(
NULL
==
autoloop
)
return
E_POINTER
;
*
autoloop
=
_p_instance
->
getAutoLoop
()
?
VARIANT_TRUE
:
VARIANT_FALSE
;
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
put_AutoLoop
(
VARIANT_BOOL
autoloop
)
{
_p_instance
->
setAutoLoop
((
VARIANT_FALSE
!=
autoloop
)
?
TRUE
:
FALSE
);
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
get_AutoPlay
(
VARIANT_BOOL
*
autoplay
)
{
if
(
NULL
==
autoplay
)
return
E_POINTER
;
*
autoplay
=
_p_instance
->
getAutoPlay
()
?
VARIANT_TRUE
:
VARIANT_FALSE
;
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
put_AutoPlay
(
VARIANT_BOOL
autoplay
)
{
_p_instance
->
setAutoPlay
((
VARIANT_FALSE
!=
autoplay
)
?
TRUE
:
FALSE
);
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
get_BaseURL
(
BSTR
*
url
)
{
if
(
NULL
==
url
)
return
E_POINTER
;
*
url
=
SysAllocStringLen
(
_p_instance
->
getBaseURL
(),
SysStringLen
(
_p_instance
->
getBaseURL
()));
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
put_BaseURL
(
BSTR
mrl
)
{
_p_instance
->
setBaseURL
(
mrl
);
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
get_MRL
(
BSTR
*
mrl
)
{
if
(
NULL
==
mrl
)
return
E_POINTER
;
*
mrl
=
SysAllocStringLen
(
_p_instance
->
getMRL
(),
SysStringLen
(
_p_instance
->
getMRL
()));
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
put_MRL
(
BSTR
mrl
)
{
_p_instance
->
setMRL
(
mrl
);
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
get_StartTime
(
int
*
seconds
)
{
if
(
NULL
==
seconds
)
return
E_POINTER
;
*
seconds
=
_p_instance
->
getStartTime
();
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
put_StartTime
(
int
seconds
)
{
_p_instance
->
setStartTime
(
seconds
);
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
get_VersionInfo
(
BSTR
*
version
)
{
if
(
NULL
==
version
)
return
E_POINTER
;
const
char
*
versionStr
=
VLC_Version
();
if
(
NULL
!=
versionStr
)
{
*
version
=
BSTRFromCStr
(
_p_instance
->
getCodePage
(),
versionStr
);
return
NULL
==
*
version
?
E_OUTOFMEMORY
:
NOERROR
;
}
*
version
=
NULL
;
return
E_FAIL
;
};
STDMETHODIMP
VLCControl2
::
get_Visible
(
VARIANT_BOOL
*
isVisible
)
{
if
(
NULL
==
isVisible
)
return
E_POINTER
;
*
isVisible
=
_p_instance
->
getVisible
()
?
VARIANT_TRUE
:
VARIANT_FALSE
;
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
put_Visible
(
VARIANT_BOOL
isVisible
)
{
_p_instance
->
setVisible
(
isVisible
!=
VARIANT_FALSE
);
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
get_Volume
(
int
*
volume
)
{
if
(
NULL
==
volume
)
return
E_POINTER
;
*
volume
=
_p_instance
->
getVolume
();
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
put_Volume
(
int
volume
)
{
_p_instance
->
setVolume
(
volume
);
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
get_audio
(
IVLCAudio
**
obj
)
{
if
(
NULL
==
obj
)
...
...
activex/vlccontrol2.h
View file @
97823006
...
...
@@ -24,7 +24,6 @@
#define _VLCCONTROL2_H_
#include "axvlc_idl.h"
#include "vlcconfiguration.h"
class
VLCAudio
:
public
IVLCAudio
{
...
...
@@ -67,7 +66,7 @@ public:
STDMETHODIMP
toggleMute
();
protected:
virtual
HRESULT
loadTypeInfo
();
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
...
...
@@ -110,11 +109,11 @@ public:
STDMETHODIMP
Invoke
(
DISPID
,
REFIID
,
LCID
,
WORD
,
DISPPARAMS
*
,
VARIANT
*
,
EXCEPINFO
*
,
UINT
*
);
// IVLCInput methods
STDMETHODIMP
get_length
(
__int64
*
);
STDMETHODIMP
get_length
(
double
*
);
STDMETHODIMP
get_position
(
float
*
);
STDMETHODIMP
put_position
(
float
);
STDMETHODIMP
get_time
(
__int64
*
);
STDMETHODIMP
put_time
(
__int64
);
STDMETHODIMP
get_time
(
double
*
);
STDMETHODIMP
put_time
(
double
);
STDMETHODIMP
get_state
(
int
*
);
STDMETHODIMP
get_rate
(
float
*
);
STDMETHODIMP
put_rate
(
float
);
...
...
@@ -122,7 +121,7 @@ public:
STDMETHODIMP
get_hasVout
(
VARIANT_BOOL
*
);
protected:
virtual
HRESULT
loadTypeInfo
();
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
...
...
@@ -177,7 +176,7 @@ public:
STDMETHODIMP
removeItem
(
int
);
protected:
virtual
HRESULT
loadTypeInfo
();
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
...
...
@@ -225,7 +224,7 @@ public:
STDMETHODIMP
get_height
(
int
*
);
protected:
virtual
HRESULT
loadTypeInfo
();
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
...
...
@@ -233,7 +232,7 @@ private:
};
class
VLCControl2
:
public
VLCConfiguration
class
VLCControl2
:
public
IVLCControl2
{
public:
...
...
@@ -248,7 +247,6 @@ public:
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCConfiguration
==
riid
)
||
(
IID_IVLCControl2
==
riid
)
)
{
AddRef
();
...
...
@@ -268,13 +266,29 @@ public:
STDMETHODIMP
Invoke
(
DISPID
,
REFIID
,
LCID
,
WORD
,
DISPPARAMS
*
,
VARIANT
*
,
EXCEPINFO
*
,
UINT
*
);
// IVLCControl2 methods
STDMETHODIMP
get_AutoLoop
(
VARIANT_BOOL
*
autoloop
);
STDMETHODIMP
put_AutoLoop
(
VARIANT_BOOL
autoloop
);
STDMETHODIMP
get_AutoPlay
(
VARIANT_BOOL
*
autoplay
);
STDMETHODIMP
put_AutoPlay
(
VARIANT_BOOL
autoplay
);
STDMETHODIMP
get_BaseURL
(
BSTR
*
url
);
STDMETHODIMP
put_BaseURL
(
BSTR
url
);
STDMETHODIMP
get_MRL
(
BSTR
*
mrl
);
STDMETHODIMP
put_MRL
(
BSTR
mrl
);
STDMETHODIMP
get_StartTime
(
int
*
seconds
);
STDMETHODIMP
put_StartTime
(
int
seconds
);
STDMETHODIMP
get_VersionInfo
(
BSTR
*
version
);
STDMETHODIMP
get_Visible
(
VARIANT_BOOL
*
visible
);
STDMETHODIMP
put_Visible
(
VARIANT_BOOL
visible
);
STDMETHODIMP
get_Volume
(
int
*
volume
);
STDMETHODIMP
put_Volume
(
int
volume
);
STDMETHODIMP
get_audio
(
IVLCAudio
**
);
STDMETHODIMP
get_input
(
IVLCInput
**
);
STDMETHODIMP
get_playlist
(
IVLCPlaylist
**
);
STDMETHODIMP
get_video
(
IVLCVideo
**
);
protected:
virtual
HRESULT
loadTypeInfo
();
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment