Repository.mk | 1 avmedia/Library_avmediaogl.mk | 35 + avmedia/Library_avmediavlc.mk | 2 avmedia/Module_avmedia.mk | 7 avmedia/source/opengl/avmediaogl.component | 15 avmedia/source/opengl/oglframegrabber.cxx | 60 +++ avmedia/source/opengl/oglframegrabber.hxx | 43 ++ avmedia/source/opengl/oglmanager.cxx | 60 +++ avmedia/source/opengl/oglmanager.hxx | 44 ++ avmedia/source/opengl/oglplayer.cxx | 159 ++++++++ avmedia/source/opengl/oglplayer.hxx | 62 +++ avmedia/source/opengl/ogluno.cxx | 47 ++ avmedia/source/opengl/oglwindow.cxx | 179 ++++++++++ avmedia/source/opengl/oglwindow.hxx | 70 +++ include/sfx2/sfxsids.hrc | 2 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu | 5 postprocess/Rdb_services.mk | 1 sd/sdi/_drvwsh.sdi | 5 sd/source/ui/func/fuinsert.cxx | 59 +++ sd/source/ui/inc/fuinsert.hxx | 17 sd/source/ui/view/drviews2.cxx | 11 sd/uiconfig/simpress/menubar/menubar.xml | 1 sfx2/sdi/sfx.sdi | 24 + 23 files changed, 907 insertions(+), 2 deletions(-)
New commits: commit cab8cfbe60e2829d62308444a610d340d2370781 Author: Zolnai Tamás <[email protected]> Date: Thu Mar 27 11:22:02 2014 +0100 Basic UI for inserting 3D models -By now only in impress. -One supported file format: gltf/.json Change-Id: I66b9cc91afeac292a19e8917f923228dc96a791a diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc index ebac7de..6c67e4c 100644 --- a/include/sfx2/sfxsids.hrc +++ b/include/sfx2/sfxsids.hrc @@ -515,6 +515,8 @@ #define SID_FRAMEDESCRIPTOR (SID_SFX_START + 1229) +#define SID_INSERT_3DMODEL (SID_SFX_START + 1229) + // SaveTabPage #define SID_ATTR_DOCINFO (SID_OPTIONS_START + 0) #define SID_ATTR_BACKUP (SID_OPTIONS_START + 1) diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index 43e4aa6..35303c3 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -5609,6 +5609,11 @@ <value xml:lang="en-US">Edit with External Tool</value> </prop> </node> + <node oor:name=".uno:Insert3DModel" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">3D Model...</value> + </prop> + </node> </node> </node> </oor:component-data> diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi index 78e812e..d328cf4 100644 --- a/sd/sdi/_drvwsh.sdi +++ b/sd/sdi/_drvwsh.sdi @@ -2748,4 +2748,9 @@ interface DrawView [ ExecMethod = FuTemporary ; ] + SID_INSERT_3DMODEL + [ + ExecMethod = FuTemporary ; + StateMethod = GetMenuState ; + ] } diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index 13f71ba..c1706fc 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -29,6 +29,7 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/chart2/XChartDocument.hpp> #include <com/sun/star/drawing/FillStyle.hpp> +#include <com/sun/star/ui/dialogs/TemplateDescription.hpp> #include <tools/urlobj.hxx> #include <svl/urihelper.hxx> @@ -90,6 +91,7 @@ TYPEINIT1( FuInsertGraphic, FuPoor ); TYPEINIT1( FuInsertClipboard, FuPoor ); TYPEINIT1( FuInsertOLE, FuPoor ); TYPEINIT1( FuInsertAVMedia, FuPoor ); +TYPEINIT1( FuInsert3DModel, FuPoor ); FuInsertGraphic::FuInsertGraphic ( ViewShell* pViewSh, @@ -753,6 +755,63 @@ void FuInsertAVMedia::DoExecute( SfxRequest& rReq ) } } +FuInsert3DModel::FuInsert3DModel( + ViewShell* pViewSh, + ::sd::Window* pWin, + ::sd::View* pView, + SdDrawDocument* pDoc, + SfxRequest& rReq) + : FuPoor(pViewSh, pWin, pView, pDoc, rReq) +{ +} + +rtl::Reference<FuPoor> FuInsert3DModel::Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq ) +{ + rtl::Reference<FuPoor> xFunc( new FuInsert3DModel( pViewSh, pWin, pView, pDoc, rReq ) ); + xFunc->DoExecute(rReq); + return xFunc; +} + +void FuInsert3DModel::DoExecute( SfxRequest& ) +{ + sfx2::FileDialogHelper aDlg( ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, 0 ); + + aDlg.SetTitle( "Open 3DModel" ); + aDlg.AddFilter( "GL Transmission Format", "*.json" ); + aDlg.AddFilter( "All files", "*.*" ); + + OUString sURL; + if( aDlg.Execute() == ERRCODE_NONE ) + { + const INetURLObject aURL( aDlg.GetPath() ); + sURL = aURL.GetMainURL( INetURLObject::DECODE_UNAMBIGUOUS ); + } + else if( !sURL.isEmpty() ) + sURL = OUString(); + + if (!sURL.isEmpty()) + { + if( mpWindow ) + mpWindow->EnterWait(); + + Point aPos; + Size aSize(480,360); + sal_Int8 nAction = DND_ACTION_COPY; + + if( mpWindow ) + { + aPos = mpWindow->PixelToLogic( Rectangle( aPos, mpWindow->GetOutputSizePixel() ).Center() ); + aPos.X() -= aSize.Width() >> 1; + aPos.Y() -= aSize.Height() >> 1; + } + + mpView->InsertMediaURL( sURL, nAction, aPos, aSize, false ) ; + + if( mpWindow ) + mpWindow->LeaveWait(); + } +} + } // end of namespace sd /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/inc/fuinsert.hxx b/sd/source/ui/inc/fuinsert.hxx index 2f6ca85..f002250 100644 --- a/sd/source/ui/inc/fuinsert.hxx +++ b/sd/source/ui/inc/fuinsert.hxx @@ -105,6 +105,23 @@ private: SfxRequest& rReq); }; +class FuInsert3DModel + : public FuPoor +{ +public: + TYPEINFO_OVERRIDE(); + + static rtl::Reference<FuPoor> Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq ); + virtual void DoExecute( SfxRequest& rReq ); + +private: + FuInsert3DModel ( + ViewShell* pViewSh, + ::sd::Window* pWin, + ::sd::View* pView, + SdDrawDocument* pDoc, + SfxRequest& rReq); +}; } // end of namespace sd diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx index c996d14..856297e 100644 --- a/sd/source/ui/view/drviews2.cxx +++ b/sd/source/ui/view/drviews2.cxx @@ -1167,6 +1167,17 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) } break; + case SID_INSERT_3DMODEL: + { + SetCurrentFunction( FuInsert3DModel::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) ); + + Cancel(); + rReq.Ignore (); + + Invalidate(SID_DRAWTBX_INSERT); + } + break; + case SID_COPYOBJECTS: { if ( mpDrawView->IsPresObjSelected(sal_False, sal_True) ) diff --git a/sd/uiconfig/simpress/menubar/menubar.xml b/sd/uiconfig/simpress/menubar/menubar.xml index b2d5ae6..ab11e88 100644 --- a/sd/uiconfig/simpress/menubar/menubar.xml +++ b/sd/uiconfig/simpress/menubar/menubar.xml @@ -217,6 +217,7 @@ <menu:menuitem menu:id=".uno:InsertObject"/> <menu:menuitem menu:id=".uno:InsertPlugin"/> <menu:menuitem menu:id=".uno:InsertMath"/> + <menu:menuitem menu:id=".uno:Insert3DModel"/> </menu:menupopup> </menu:menu> <menu:menuitem menu:id=".uno:InsertObjectChart"/> diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 59e6254..8487a84 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -8457,3 +8457,27 @@ SvxZoomItem Zoom SID_ATTR_ZOOM ToolBoxConfig = TRUE, GroupId = GID_VIEW; ] + +SfxStringItem Insert3DModel SID_INSERT_3DMODEL +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = FALSE, + HasCoreId = FALSE, + HasDialog = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Synchron; + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_APPLICATION; +] commit 4f48dc2f978d36ef9ba08bf828894fa578430fc7 Author: Zolnai Tamás <[email protected]> Date: Wed Mar 26 18:46:52 2014 +0100 Skeleton of OpenGL avmedia service for playing 3D models Change-Id: I3bf9e68e1a08ff3db065ec7f4e135119b7d1a4ef diff --git a/Repository.mk b/Repository.mk index 9fd036e..6c2bb67 100644 --- a/Repository.mk +++ b/Repository.mk @@ -498,6 +498,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \ $(if $(ENABLE_GSTREAMER),avmediagst) \ $(if $(ENABLE_GSTREAMER_0_10),avmediagst_0_10) \ $(if $(ENABLE_DIRECTX),avmediawin) \ + $(if $(ENABLE_OPENGL),avmediaogl) \ cached1 \ collator_data \ comphelper \ diff --git a/avmedia/Library_avmediaogl.mk b/avmedia/Library_avmediaogl.mk new file mode 100644 index 0000000..78b4a8f --- /dev/null +++ b/avmedia/Library_avmediaogl.mk @@ -0,0 +1,35 @@ +# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Library_Library,avmediaogl)) + +$(eval $(call gb_Library_set_componentfile,avmediaogl,avmedia/source/opengl/avmediaogl)) + +$(eval $(call gb_Library_use_sdk_api,avmediaogl)) + +$(eval $(call gb_Library_use_libraries,avmediaogl,\ + comphelper \ + cppu \ + cppuhelper \ + sal \ + salhelper \ + tl \ + vcl \ + $(gb_UWINAPI) \ +)) + +$(eval $(call gb_Library_add_exception_objects,avmediaogl,\ + avmedia/source/opengl/oglframegrabber \ + avmedia/source/opengl/oglmanager \ + avmedia/source/opengl/oglplayer \ + avmedia/source/opengl/ogluno \ + avmedia/source/opengl/oglwindow \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/avmedia/Module_avmedia.mk b/avmedia/Module_avmedia.mk index 88ee2aa..b1b6703 100644 --- a/avmedia/Module_avmedia.mk +++ b/avmedia/Module_avmedia.mk @@ -51,4 +51,11 @@ $(eval $(call gb_Module_add_targets,avmedia,\ )) endif +ifeq ($(ENABLE_OPENGL),TRUE) +$(eval $(call gb_Module_add_targets,avmedia,\ + Library_avmediaogl \ +)) +endif + + # vim: set noet sw=4 ts=4: diff --git a/avmedia/source/opengl/avmediaogl.component b/avmedia/source/opengl/avmediaogl.component new file mode 100644 index 0000000..f3cd138 --- /dev/null +++ b/avmedia/source/opengl/avmediaogl.component @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * +--> +<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" + prefix="avmediaogl" xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.avmedia.Manager_OpenGL"> + <service name="com.sun.star.media.Manager_OpenGL"/> + </implementation> +</component> diff --git a/avmedia/source/opengl/oglframegrabber.cxx b/avmedia/source/opengl/oglframegrabber.cxx new file mode 100644 index 0000000..2aeda97 --- /dev/null +++ b/avmedia/source/opengl/oglframegrabber.cxx @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "oglframegrabber.hxx" + +#include <cppuhelper/supportsservice.hxx> +#include <vcl/bitmapex.hxx> +#include <vcl/graph.hxx> + +using namespace com::sun::star; + +namespace avmedia { namespace ogl { + +OGLFrameGrabber::OGLFrameGrabber( const OUString& /*rUrl*/ ) + : FrameGrabber_BASE() +{ +} + +OGLFrameGrabber::~OGLFrameGrabber() +{ +} + +uno::Reference< css::graphic::XGraphic > SAL_CALL OGLFrameGrabber::grabFrame( double /*fMediaTime*/ ) + throw ( uno::RuntimeException, std::exception ) +{ + // TODO: Here we need a bitmap of the model at the point specified by fMediaTime + // See com::sun::star::media::XFrameGrabber + BitmapEx aBitmap; + return Graphic( aBitmap ).GetXGraphic(); +} + +OUString SAL_CALL OGLFrameGrabber::getImplementationName() throw ( uno::RuntimeException, std::exception ) +{ + return OUString("com.sun.star.comp.avmedia.FrameGrabber_OpenGL"); +} + +sal_Bool SAL_CALL OGLFrameGrabber::supportsService( const OUString& rServiceName ) + throw ( uno::RuntimeException, std::exception ) +{ + return cppu::supportsService(this, rServiceName); +} + +uno::Sequence< OUString > SAL_CALL OGLFrameGrabber::getSupportedServiceNames() + throw ( uno::RuntimeException, std::exception ) +{ + uno::Sequence< OUString > aRet(1); + aRet[0] = OUString("com.sun.star.media.FrameGrabber_OpenGL"); + return aRet; +} + +} // namespace ogl +} // namespace avmedia + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglframegrabber.hxx b/avmedia/source/opengl/oglframegrabber.hxx new file mode 100644 index 0000000..fd3d9fb --- /dev/null +++ b/avmedia/source/opengl/oglframegrabber.hxx @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef OGL_FRAMEGRABBER_HXX +#define OGL_FRAMEGRABBER_HXX + +#include <cppuhelper/compbase2.hxx> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/media/XFrameGrabber.hpp> + +namespace avmedia { namespace ogl { + +typedef ::cppu::WeakImplHelper2< com::sun::star::media::XFrameGrabber, + com::sun::star::lang::XServiceInfo > FrameGrabber_BASE; + +class OGLFrameGrabber : public FrameGrabber_BASE +{ +public: + + OGLFrameGrabber( const OUString& rURL ); + virtual ~OGLFrameGrabber(); + + // XFrameGrabber + virtual com::sun::star::uno::Reference< com::sun::star::graphic::XGraphic > SAL_CALL grabFrame( double fMediaTime ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; +}; + +} // namespace ogl +} // namespace avmedia + +#endif // OGL_FRAMEGRABBER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglmanager.cxx b/avmedia/source/opengl/oglmanager.cxx new file mode 100644 index 0000000..d435e60 --- /dev/null +++ b/avmedia/source/opengl/oglmanager.cxx @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "oglmanager.hxx" +#include "oglframegrabber.hxx" +#include "oglplayer.hxx" + +#include <cppuhelper/supportsservice.hxx> + +using namespace com::sun::star; + +namespace avmedia { namespace ogl { + +OGLManager::OGLManager( const uno::Reference< lang::XMultiServiceFactory >& rMgr ) + : m_xMgr( rMgr ) +{ +} + +OGLManager::~OGLManager() +{ +} + +uno::Reference< media::XPlayer > SAL_CALL OGLManager::createPlayer( const OUString& rURL ) + throw (uno::RuntimeException, std::exception) +{ + // TODO: Here we need to construct our OpenGL player. + // See com::sun::star::media::XManager + OGLPlayer* pPlayer( new OGLPlayer( rURL ) ); + return uno::Reference< media::XPlayer >(pPlayer); +} + +OUString SAL_CALL OGLManager::getImplementationName() throw ( uno::RuntimeException, std::exception ) +{ + return OUString("com.sun.star.comp.avmedia.Manager_OpenGL"); +} + +sal_Bool SAL_CALL OGLManager::supportsService( const OUString& rServiceName ) + throw ( uno::RuntimeException, std::exception ) +{ + return cppu::supportsService(this, rServiceName); +} + +uno::Sequence< OUString > SAL_CALL OGLManager::getSupportedServiceNames() + throw ( uno::RuntimeException, std::exception ) +{ + ::uno::Sequence< OUString > aRet(1); + aRet[0] = OUString("com.sun.star.media.Manager_OpenGL"); + return aRet; +} + +} // namespace ogl +} // namespace avmedia + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglmanager.hxx b/avmedia/source/opengl/oglmanager.hxx new file mode 100644 index 0000000..bbecfbc --- /dev/null +++ b/avmedia/source/opengl/oglmanager.hxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef OGL_MANAGER_HXX +#define OGL_MANAGER_HXX + +#include <cppuhelper/compbase2.hxx> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/media/XManager.hpp> + +namespace avmedia { namespace ogl { + +class OGLManager : public ::cppu::WeakImplHelper2 < com::sun::star::media::XManager, + com::sun::star::lang::XServiceInfo > +{ +public: + + OGLManager( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& rMgr ); + virtual ~OGLManager(); + + // XManager + virtual ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > SAL_CALL createPlayer( const OUString& rURL ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; +private: + + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xMgr; +}; + +} // namespace ogl +} // namespace avmedia + +#endif // OGL_MANAGER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglplayer.cxx b/avmedia/source/opengl/oglplayer.cxx new file mode 100644 index 0000000..325579f --- /dev/null +++ b/avmedia/source/opengl/oglplayer.cxx @@ -0,0 +1,159 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "oglplayer.hxx" +#include "oglframegrabber.hxx" +#include "oglwindow.hxx" + +#include <cppuhelper/supportsservice.hxx> + +using namespace com::sun::star; + +namespace avmedia { namespace ogl { + +OGLPlayer::OGLPlayer( const OUString& rUrl) + : Player_BASE(m_aMutex) + , m_sUrl(rUrl) +{ +} + +OGLPlayer::~OGLPlayer() +{ +} + +void SAL_CALL OGLPlayer::start() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Start playing of gltf model (see com::sun::star::media::XPlayer) +} + +void SAL_CALL OGLPlayer::stop() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Stop playing of gltf model (see com::sun::star::media::XPlayer) +} + +sal_Bool SAL_CALL OGLPlayer::isPlaying() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Check whether gltf model is played by now (see com::sun::star::media::XPlayer) + return false; +} + +double SAL_CALL OGLPlayer::getDuration() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Get gltf's duration (see com::sun::star::media::XPlayer) + return 0.0; +} + +void SAL_CALL OGLPlayer::setMediaTime( double /*fTime*/ ) throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Set player to the specified point (see com::sun::star::media::XPlayer) +} + +double SAL_CALL OGLPlayer::getMediaTime() throw ( ::com::sun::star::uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Get player current time position (see com::sun::star::media::XPlayer) + return 0.0; +} + +double SAL_CALL OGLPlayer::getRate() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Get the speed of stream reading (see com::sun::star::media::XPlayer) + return 1.0; +} + +void SAL_CALL OGLPlayer::setPlaybackLoop( sal_Bool /*bSet*/ ) throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Set the playes replay itself when it ends (see com::sun::star::media::XPlayer) +} + +sal_Bool SAL_CALL OGLPlayer::isPlaybackLoop() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Check whether playing will restart after it ends (see com::sun::star::media::XPlayer) + return false; +} + +void SAL_CALL OGLPlayer::setVolumeDB( sal_Int16 /*nVolumDB*/ ) throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Set audio volume (see com::sun::star::media::XPlayer) +} + +sal_Int16 SAL_CALL OGLPlayer::getVolumeDB() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Get audio volume (see com::sun::star::media::XPlayer) + return 0; +} + +void SAL_CALL OGLPlayer::setMute( sal_Bool /*bSet*/ ) throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Set volume to 0 (see com::sun::star::media::XPlayer) +} + +sal_Bool SAL_CALL OGLPlayer::isMute() throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + // TODO: Get whether volume is set to 0 by setMute (see com::sun::star::media::XPlayer) + return false; +} + +awt::Size SAL_CALL OGLPlayer::getPreferredPlayerWindowSize() throw ( uno::RuntimeException, std::exception ) +{ + return awt::Size( 480, 360 ); // TODO: It will be good for OpenGL too? +} + +uno::Reference< media::XPlayerWindow > SAL_CALL OGLPlayer::createPlayerWindow( const uno::Sequence< uno::Any >& /*aArguments*/ ) + throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard( m_aMutex ); + OGLWindow* pWindow = new OGLWindow(*this); + return uno::Reference< media::XPlayerWindow >( pWindow ); +} + +uno::Reference< media::XFrameGrabber > SAL_CALL OGLPlayer::createFrameGrabber() + throw ( uno::RuntimeException, std::exception ) +{ + osl::MutexGuard aGuard(m_aMutex); + OGLFrameGrabber *pFrameGrabber = new OGLFrameGrabber( m_sUrl ); + return uno::Reference< media::XFrameGrabber >( pFrameGrabber );; +} + +OUString SAL_CALL OGLPlayer::getImplementationName() + throw ( ::com::sun::star::uno::RuntimeException, std::exception ) +{ + return OUString("com.sun.star.comp.avmedia.Player_OpenGL"); +} + +sal_Bool SAL_CALL OGLPlayer::supportsService( const OUString& rServiceName ) + throw ( ::com::sun::star::uno::RuntimeException, std::exception ) +{ + return cppu::supportsService(this, rServiceName); +} + +uno::Sequence< OUString > SAL_CALL OGLPlayer::getSupportedServiceNames() + throw ( com::sun::star::uno::RuntimeException, std::exception ) +{ + uno::Sequence< OUString > aRet(1); + aRet[0] = OUString("com.sun.star.media.Player_OpenGL"); + return aRet; +} + +} // namespace ogl +} // namespace avmedia + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglplayer.hxx b/avmedia/source/opengl/oglplayer.hxx new file mode 100644 index 0000000..69101a6 --- /dev/null +++ b/avmedia/source/opengl/oglplayer.hxx @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef OGL_PLAYER_HXX +#define OGL_PLAYER_HXX + +#include <cppuhelper/compbase2.hxx> +#include <cppuhelper/basemutex.hxx> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/media/XPlayer.hpp> + +namespace avmedia { namespace ogl { + +typedef ::cppu::WeakComponentImplHelper2< com::sun::star::media::XPlayer, + com::sun::star::lang::XServiceInfo > Player_BASE; + +class OGLPlayer : public cppu::BaseMutex, + public Player_BASE +{ +public: + + OGLPlayer( const OUString& rURL ); + virtual ~OGLPlayer(); + + // XPlayer + virtual void SAL_CALL start() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL stop() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL isPlaying() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual double SAL_CALL getDuration() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setMediaTime( double fTime ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual double SAL_CALL getMediaTime() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual double SAL_CALL getRate() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setPlaybackLoop( sal_Bool bSet ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL isPlaybackLoop() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setVolumeDB( sal_Int16 nVolumeDB ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Int16 SAL_CALL getVolumeDB() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setMute( sal_Bool bSet ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL isMute() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::awt::Size SAL_CALL getPreferredPlayerWindowSize() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::uno::Reference< com::sun::star::media::XPlayerWindow > SAL_CALL createPlayerWindow( const com::sun::star::uno::Sequence< com::sun::star::uno::Any >& aArguments ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::uno::Reference< com::sun::star::media::XFrameGrabber > SAL_CALL createFrameGrabber() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + +private: + OUString m_sUrl; +}; + +} // namespace ogl +} // namespace avmedia + +#endif // OGL_PLAYER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/ogluno.cxx b/avmedia/source/opengl/ogluno.cxx new file mode 100644 index 0000000..f4ce756 --- /dev/null +++ b/avmedia/source/opengl/ogluno.cxx @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "oglmanager.hxx" + +#include <cppuhelper/factory.hxx> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XSingleServiceFactory.hpp> + +using namespace ::com::sun::star; + +static uno::Reference< uno::XInterface > SAL_CALL create_MediaPlayer( const uno::Reference< lang::XMultiServiceFactory >& rxFact ) +{ + return uno::Reference< uno::XInterface >( *new ::avmedia::ogl::OGLManager( rxFact ) ); +} + +extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL avmediaogl_component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* ) +{ + uno::Reference< lang::XSingleServiceFactory > xFactory; + void* pRet = 0; + + if( rtl_str_compare( pImplName, "com.sun.star.comp.avmedia.Manager_OpenGL" ) == 0 ) + { + const OUString aServiceName( "com.sun.star.media.Manager_OpenGL" ); + + xFactory = uno::Reference< lang::XSingleServiceFactory >( ::cppu::createSingleFactory( + reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), + OUString("com.sun.star.comp.avmedia.Manager_OpenGL" ), + create_MediaPlayer, uno::Sequence< OUString >( &aServiceName, 1 ) ) ); + } + + if( xFactory.is() ) + { + xFactory->acquire(); + pRet = xFactory.get(); + } + + return pRet; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglwindow.cxx b/avmedia/source/opengl/oglwindow.cxx new file mode 100644 index 0000000..ab524e4 --- /dev/null +++ b/avmedia/source/opengl/oglwindow.cxx @@ -0,0 +1,179 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "oglwindow.hxx" +#include <cppuhelper/supportsservice.hxx> + +using namespace com::sun::star; + +namespace avmedia { namespace ogl { + +OGLWindow::OGLWindow( OGLPlayer& rPlayer ) + : m_rPlayer( rPlayer ) + , meZoomLevel( media::ZoomLevel_ORIGINAL ) +{ +} + +OGLWindow::~OGLWindow() +{ +} + +void SAL_CALL OGLWindow::update() throw (css::uno::RuntimeException, std::exception) +{ +} + +sal_Bool SAL_CALL OGLWindow::setZoomLevel( css::media::ZoomLevel eZoomLevel ) throw (css::uno::RuntimeException, std::exception) +{ + sal_Bool bRet = false; + + if( media::ZoomLevel_NOT_AVAILABLE != meZoomLevel && + media::ZoomLevel_NOT_AVAILABLE != eZoomLevel ) + { + if( eZoomLevel != meZoomLevel ) + { + meZoomLevel = eZoomLevel; + } + bRet = true; + } + // TODO: set zoom level, not just store this value + return bRet; +} + +css::media::ZoomLevel SAL_CALL OGLWindow::getZoomLevel() throw (css::uno::RuntimeException, std::exception) +{ + return meZoomLevel; +} + +void SAL_CALL OGLWindow::setPointerType( sal_Int32 ) throw (css::uno::RuntimeException, std::exception) +{ +} + +OUString SAL_CALL OGLWindow::getImplementationName() throw (css::uno::RuntimeException, std::exception) +{ + return OUString("com.sun.star.comp.avmedia.Window_OpenGL"); +} + +sal_Bool SAL_CALL OGLWindow::supportsService( const OUString& rServiceName ) throw (css::uno::RuntimeException, std::exception) +{ + return cppu::supportsService(this, rServiceName); +} + +uno::Sequence< OUString > SAL_CALL OGLWindow::getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) +{ + uno::Sequence< OUString > aRet(1); + aRet[0] = OUString("com.sun.star.media.Window_OpenGL"); + return aRet; +} + +void SAL_CALL OGLWindow::dispose() throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addEventListener( const uno::Reference< lang::XEventListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removeEventListener( const uno::Reference< lang::XEventListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::setPosSize( sal_Int32 /*X*/, sal_Int32 /*Y*/, sal_Int32 /*Width*/, sal_Int32 /*Height*/, sal_Int16 /* Flags */ ) + throw (uno::RuntimeException, std::exception) +{ + // TODO: store size +} + +awt::Rectangle SAL_CALL OGLWindow::getPosSize() + throw (uno::RuntimeException, std::exception) +{ + // TODO: get size + return awt::Rectangle(); +} + +void SAL_CALL OGLWindow::setVisible( sal_Bool ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::setEnable( sal_Bool ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::setFocus() + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addWindowListener( const uno::Reference< awt::XWindowListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removeWindowListener( const uno::Reference< awt::XWindowListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addFocusListener( const uno::Reference< awt::XFocusListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removeFocusListener( const uno::Reference< awt::XFocusListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addKeyListener( const uno::Reference< awt::XKeyListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removeKeyListener( const uno::Reference< awt::XKeyListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addMouseListener( const uno::Reference< awt::XMouseListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removeMouseListener( const uno::Reference< awt::XMouseListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::addPaintListener( const uno::Reference< awt::XPaintListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +void SAL_CALL OGLWindow::removePaintListener( const uno::Reference< awt::XPaintListener >& ) + throw (uno::RuntimeException, std::exception) +{ +} + +} // namespace ogl +} // namespace avmedia + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/opengl/oglwindow.hxx b/avmedia/source/opengl/oglwindow.hxx new file mode 100644 index 0000000..d373dd1 --- /dev/null +++ b/avmedia/source/opengl/oglwindow.hxx @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef OGL_WINDOW_HXX +#define OGL_WINDOW_HXX + +#include "oglplayer.hxx" + +#include <cppuhelper/compbase2.hxx> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/media/XPlayerWindow.hpp> +#include <com/sun/star/media/ZoomLevel.hpp> + +namespace avmedia { namespace ogl { + +class OGLWindow : public ::cppu::WeakImplHelper2 < com::sun::star::media::XPlayerWindow, + com::sun::star::lang::XServiceInfo > +{ +public: + OGLWindow( OGLPlayer& rPlayer ); + virtual ~OGLWindow(); + + virtual void SAL_CALL update() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL setZoomLevel( com::sun::star::media::ZoomLevel ZoomLevel ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::media::ZoomLevel SAL_CALL getZoomLevel() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setPointerType( sal_Int32 SystemPointerType ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + + virtual OUString SAL_CALL getImplementationName() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + + virtual void SAL_CALL dispose() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removeEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + + virtual void SAL_CALL setPosSize( sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual com::sun::star::awt::Rectangle SAL_CALL getPosSize() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setVisible( sal_Bool Visible ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setEnable( sal_Bool Enable ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL setFocus() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removeWindowListener( const com::sun::star::uno::Reference< com::sun::star::awt::XWindowListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addFocusListener( const com::sun::star::uno::Reference< com::sun::star::awt::XFocusListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removeFocusListener( const com::sun::star::uno::Reference< com::sun::star::awt::XFocusListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addKeyListener( const com::sun::star::uno::Reference< com::sun::star::awt::XKeyListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removeKeyListener( const com::sun::star::uno::Reference< com::sun::star::awt::XKeyListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addMouseListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removeMouseListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addMouseMotionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseMotionListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removeMouseMotionListener( const com::sun::star::uno::Reference< com::sun::star::awt::XMouseMotionListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL addPaintListener( const com::sun::star::uno::Reference< com::sun::star::awt::XPaintListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + virtual void SAL_CALL removePaintListener( const com::sun::star::uno::Reference< com::sun::star::awt::XPaintListener >& xListener ) throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; + +private: + OGLPlayer& m_rPlayer; + com::sun::star::media::ZoomLevel meZoomLevel; +}; + +} // namespace ogl +} // namespace avmedia + +#endif // OGL_WINDOW_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk index e6cd8b5..a7920aa 100755 --- a/postprocess/Rdb_services.mk +++ b/postprocess/Rdb_services.mk @@ -215,6 +215,7 @@ $(eval $(call gb_Rdb_add_components,services,\ ) \ $(if $(ENABLE_OPENGL), \ slideshow/source/engine/OGLTrans/ogltrans \ + avmedia/source/opengl/avmediaogl \ ) \ $(if $(ENABLE_TDE), \ shell/source/backends/kdebe/tdebe1 \ commit c4cf1a1891122eb1136484dd16145620b7678e96 Author: Zolnai Tamás <[email protected]> Date: Tue Mar 25 12:28:58 2014 +0100 avmediavlc: Remove duplicated external usage Change-Id: I2f41c13465740e5079e6af413f4c8217d6dcd36b diff --git a/avmedia/Library_avmediavlc.mk b/avmedia/Library_avmediavlc.mk index 43be24e..2f6bf9d 100644 --- a/avmedia/Library_avmediavlc.mk +++ b/avmedia/Library_avmediavlc.mk @@ -16,8 +16,6 @@ $(eval $(call gb_Library_set_include,avmediavlc,\ -I$(SRCDIR)/avmedia/source/inc \ )) -$(eval $(call gb_Library_use_external,avmediavlc,boost_headers)) - $(eval $(call gb_Library_use_sdk_api,avmediavlc)) $(eval $(call gb_Library_use_externals,avmediavlc,\
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
