Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
a3995514
Commit
a3995514
authored
Oct 30, 2006
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(Forward port of [17380]) Aspect ratio property for ActiveX plugin
parent
d370b165
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
122 additions
and
1 deletion
+122
-1
activex/axvlc.idl
activex/axvlc.idl
+5
-0
activex/axvlc_idl.h
activex/axvlc_idl.h
+32
-0
activex/vlccontrol2.cpp
activex/vlccontrol2.cpp
+82
-0
activex/vlccontrol2.h
activex/vlccontrol2.h
+3
-1
No files found.
activex/axvlc.idl
View file @
a3995514
...
...
@@ -402,6 +402,11 @@ library AXVLC
[
propget
,
helpstring
(
"Returns video original height."
)
]
HRESULT
height
(
[
out
,
retval
]
long
*
height
)
;
[
propget
,
helpstring
(
"Returns video aspect ratio."
)
]
HRESULT
aspectRatio
(
[
out
,
retval
]
BSTR
*
aspect
)
;
[
propput
,
helpstring
(
"Sets video aspect ratio."
)
]
HRESULT
aspectRatio
(
[
in
]
BSTR
aspect
)
;
[
helpstring
(
"toggle fullscreen/windowed state."
)
]
HRESULT
toggleFullscreen
()
;
}
;
...
...
activex/axvlc_idl.h
View file @
a3995514
...
...
@@ -2034,6 +2034,12 @@ interface IVLCVideo : public IDispatch
virtual
HRESULT
STDMETHODCALLTYPE
get_height
(
long
*
height
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_aspectRatio
(
BSTR
*
aspect
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_aspectRatio
(
BSTR
aspect
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
toggleFullscreen
(
)
=
0
;
...
...
@@ -2101,6 +2107,14 @@ typedef struct IVLCVideoVtbl {
IVLCVideo
*
This
,
long
*
height
);
HRESULT
(
STDMETHODCALLTYPE
*
get_aspectRatio
)(
IVLCVideo
*
This
,
BSTR
*
aspect
);
HRESULT
(
STDMETHODCALLTYPE
*
put_aspectRatio
)(
IVLCVideo
*
This
,
BSTR
aspect
);
HRESULT
(
STDMETHODCALLTYPE
*
toggleFullscreen
)(
IVLCVideo
*
This
);
...
...
@@ -2125,6 +2139,8 @@ interface IVLCVideo {
#define IVLCVideo_put_fullscreen(p,a) (p)->lpVtbl->put_fullscreen(p,a)
#define IVLCVideo_get_width(p,a) (p)->lpVtbl->get_width(p,a)
#define IVLCVideo_get_height(p,a) (p)->lpVtbl->get_height(p,a)
#define IVLCVideo_get_aspectRatio(p,a) (p)->lpVtbl->get_aspectRatio(p,a)
#define IVLCVideo_put_aspectRatio(p,a) (p)->lpVtbl->put_aspectRatio(p,a)
#define IVLCVideo_toggleFullscreen(p) (p)->lpVtbl->toggleFullscreen(p)
#endif
...
...
@@ -2162,6 +2178,22 @@ void __RPC_STUB IVLCVideo_get_height_Stub(
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCVideo_get_aspectRatio_Proxy
(
IVLCVideo
*
This
,
BSTR
*
aspect
);
void
__RPC_STUB
IVLCVideo_get_aspectRatio_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCVideo_put_aspectRatio_Proxy
(
IVLCVideo
*
This
,
BSTR
aspect
);
void
__RPC_STUB
IVLCVideo_put_aspectRatio_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCVideo_toggleFullscreen_Proxy
(
IVLCVideo
*
This
);
void
__RPC_STUB
IVLCVideo_toggleFullscreen_Stub
(
...
...
activex/vlccontrol2.cpp
View file @
a3995514
...
...
@@ -1758,6 +1758,88 @@ STDMETHODIMP VLCVideo::get_height(long* height)
return
hr
;
};
STDMETHODIMP
VLCVideo
::
get_aspectRatio
(
BSTR
*
aspect
)
{
if
(
NULL
==
*
aspect
)
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_input_t
*
p_input
=
libvlc_playlist_get_input
(
p_libvlc
,
&
ex
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
char
*
psz_aspect
=
libvlc_video_get_aspect_ratio
(
p_input
,
&
ex
);
if
(
!
psz_aspect
)
return
E_OUTOFMEMORY
;
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
*
aspect
=
SysAllocStringByteLen
(
psz_aspect
,
strlen
(
psz_aspect
));
free
(
psz_aspect
);
psz_aspect
=
NULL
;
libvlc_input_free
(
p_input
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
return
NOERROR
;
}
}
if
(
psz_aspect
)
free
(
psz_aspect
);
}
_p_instance
->
setErrorInfo
(
IID_IVLCVideo
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
return
hr
;
};
STDMETHODIMP
VLCVideo
::
put_aspectRatio
(
BSTR
aspect
)
{
if
(
NULL
==
aspect
)
return
E_POINTER
;
if
(
0
==
SysStringLen
(
aspect
)
)
return
E_INVALIDARG
;
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
if
(
SUCCEEDED
(
hr
)
)
{
char
*
psz_aspect
=
NULL
;
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_input_t
*
p_input
=
libvlc_playlist_get_input
(
p_libvlc
,
&
ex
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
psz_aspect
=
CStrFromBSTR
(
CP_UTF8
,
aspect
);
if
(
NULL
==
psz_aspect
)
{
return
E_OUTOFMEMORY
;
}
libvlc_video_set_aspect_ratio
(
p_input
,
psz_aspect
,
&
ex
);
CoTaskMemFree
(
psz_aspect
);
libvlc_input_free
(
p_input
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCPlaylist
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
return
NOERROR
;
}
return
hr
;
};
STDMETHODIMP
VLCVideo
::
toggleFullscreen
()
{
libvlc_instance_t
*
p_libvlc
;
...
...
activex/vlccontrol2.h
View file @
a3995514
...
...
@@ -121,7 +121,7 @@ public:
STDMETHODIMP
put_rate
(
double
);
STDMETHODIMP
get_fps
(
double
*
);
STDMETHODIMP
get_hasVout
(
VARIANT_BOOL
*
);
protected:
HRESULT
loadTypeInfo
();
...
...
@@ -460,6 +460,8 @@ public:
STDMETHODIMP
put_fullscreen
(
VARIANT_BOOL
);
STDMETHODIMP
get_width
(
long
*
);
STDMETHODIMP
get_height
(
long
*
);
STDMETHODIMP
get_aspectRatio
(
BSTR
*
);
STDMETHODIMP
put_aspectRatio
(
BSTR
);
STDMETHODIMP
toggleFullscreen
();
protected:
...
...
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