diff options
author | Andrzej J. R. Hunt <andrzej@ahunt.org> | 2012-07-17 17:48:07 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-08-06 10:22:57 +0100 |
commit | d57230d33811aa317b53e12c3d81f5d7d7bc93c8 (patch) | |
tree | 4148b14f78318183cb8b8848db805c8382c24519 /sd | |
parent | a1e8ed9831d7f7af45932841244b4551a5a92ad3 (diff) |
Added registration of the slideshow listener.
Change-Id: I Icaf2fe03e5f5b8ee9de3138b8dd28d837c734e94
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/ui/remotecontrol/Listener.cxx | 54 | ||||
-rw-r--r-- | sd/source/ui/remotecontrol/Listener.hxx | 12 | ||||
-rw-r--r-- | sd/source/ui/remotecontrol/Receiver.cxx | 5 | ||||
-rw-r--r-- | sd/source/ui/remotecontrol/Server.cxx | 33 |
4 files changed, 42 insertions, 62 deletions
diff --git a/sd/source/ui/remotecontrol/Listener.cxx b/sd/source/ui/remotecontrol/Listener.cxx index 47cf1fa3b90f..25f51077221e 100644 --- a/sd/source/ui/remotecontrol/Listener.cxx +++ b/sd/source/ui/remotecontrol/Listener.cxx @@ -18,50 +18,14 @@ using namespace ::com::sun::star::frame; using rtl::OString; -Listener::Listener( css::uno::Reference< css::presentation::XSlideShowController > aController, sd::Transmitter& rTransmitter ) - : ::cppu::WeakComponentImplHelper2< XSlideShowListener, - XFrameActionListener >( m_aMutex ) +Listener::Listener( sd::Transmitter& rTransmitter ) + : ::cppu::WeakComponentImplHelper1< XSlideShowListener>( m_aMutex ) { - fprintf( stderr, "Hello from a listener...\n" ); - try - { - css::uno::Reference< css::lang::XMultiServiceFactory > xServiceManager( - ::comphelper::getProcessServiceFactory(), css::uno::UNO_QUERY_THROW ); - css::uno::Reference< css::frame::XFrame > xDesktop( xServiceManager->createInstance( - "com.sun.star.frame.Desktop" ) , css::uno::UNO_QUERY_THROW ); - xDesktop->addFrameActionListener( static_cast<XFrameActionListener*>(this)); - } - catch ( css::uno::RuntimeException &e ) - { - //return; - } - if( aController.is() ) - { -// css::uno::Reference< css::lang::XMultiServiceFactory > xServiceManager( -// ::comphelper::getProcessServiceFactory(), css::uno::UNO_QUERY_THROW ); -// css::uno::Reference< css::frame::XFramesSupplier > xFramesSupplier( -// xServiceManager->createInstance( "com.sun.star.frame.Desktop" ) , -// css::uno::UNO_QUERY_THROW ); -// css::uno::Reference< css::frame::XFrame > xFrame ( -// xFramesSupplier->getActiveFrame(), css::uno::UNO_QUERY_THROW ); -// css::uno::Reference<css::presentation::XPresentationSupplier> xPS ( -// xFrame->getController()->getModel(), css::uno::UNO_QUERY_THROW); -// css::uno::Reference<css::presentation::XPresentation2> xPresentation( -// xPS->getPresentation(), css::uno::UNO_QUERY_THROW); -// // Throws an exception if now slideshow running -// css::uno::Reference<css::presentation::XSlideShowController> xSlideShowController( -// xPresentation->getController(), css::uno::UNO_QUERY_THROW ); -// xSlideShowController->addSlideShowListener(static_cast<XSlideShowListener*>(this)); -// fprintf(stderr, "Registered the slideshowlistener\n" ); - fprintf(stderr, "Trying to add the slideshowlistener\n" ); - aController->addSlideShowListener(static_cast<XSlideShowListener*>(this)); - fprintf(stderr, "Registered the slideshowlistener\n" ); - } - else - { - fprintf(stderr, "rController isn't\n" ); - } +} +void Listener::init(css::uno::Reference< css::presentation::XSlideShowController > aController) +{ + aController->addSlideShowListener(static_cast<XSlideShowListener*>(this)); } @@ -161,12 +125,6 @@ void SAL_CALL Listener::slideAnimationsEnded (void) { } -void SAL_CALL Listener::frameAction (const css::frame::FrameActionEvent& rEvent) - throw (::com::sun::star::uno::RuntimeException) -{ - fprintf( stderr, "FrameAction\n" ); -} - void SAL_CALL Listener::disposing (void) { // FIXME: disconnect as appropriate diff --git a/sd/source/ui/remotecontrol/Listener.hxx b/sd/source/ui/remotecontrol/Listener.hxx index 56635dc26667..e05c25978c56 100644 --- a/sd/source/ui/remotecontrol/Listener.hxx +++ b/sd/source/ui/remotecontrol/Listener.hxx @@ -14,7 +14,7 @@ #include <com/sun/star/presentation/XSlideShowListener.hpp> #include <com/sun/star/presentation/XSlideShowController.hpp> -#include <cppuhelper/compbase2.hxx> +#include <cppuhelper/compbase1.hxx> #include <cppuhelper/basemutex.hxx> #include <osl/socket.hxx> @@ -25,11 +25,11 @@ namespace css = ::com::sun::star; namespace sd { class Listener : protected ::cppu::BaseMutex, - public ::cppu::WeakComponentImplHelper2< css::presentation::XSlideShowListener, css::frame::XFrameActionListener > + public ::cppu::WeakComponentImplHelper1< css::presentation::XSlideShowListener > { public: - Listener( css::uno::Reference< css::presentation::XSlideShowController > aController, sd::Transmitter& rTransmitter ); - + Listener( sd::Transmitter& rTransmitter ); + void init( css::uno::Reference< css::presentation::XSlideShowController > aController); // XAnimationListener virtual void SAL_CALL beginEvent(const css::uno::Reference< @@ -50,10 +50,6 @@ public: virtual void SAL_CALL hyperLinkClicked( const ::rtl::OUString& hyperLink ) throw (css::uno::RuntimeException); - // XFrameActionListener - virtual void SAL_CALL frameAction (const css::frame::FrameActionEvent& rEvent) - throw (css::uno::RuntimeException); - // XEventListener virtual void SAL_CALL disposing (void); virtual void SAL_CALL disposing ( diff --git a/sd/source/ui/remotecontrol/Receiver.cxx b/sd/source/ui/remotecontrol/Receiver.cxx index d88eb684bf65..28f01be0a6c6 100644 --- a/sd/source/ui/remotecontrol/Receiver.cxx +++ b/sd/source/ui/remotecontrol/Receiver.cxx @@ -8,6 +8,9 @@ */ #include "Receiver.hxx" #include <string.h> +#include <com/sun/star/presentation/XSlideShowController.hpp> +#include <com/sun/star/presentation/XPresentationSupplier.hpp> +#include <com/sun/star/presentation/XPresentation2.hpp> #include <com/sun/star/frame/XFramesSupplier.hpp> #include <com/sun/star/document/XFilter.hpp> #include <com/sun/star/document/XExporter.hpp> @@ -42,8 +45,6 @@ void Receiver::parseCommand( std::vector<OString> aCommand ) fprintf( stderr, "Parsing:\n"); for (size_t i = 0; i < aCommand.size(); i++) { - fprintf( stderr, "%s\n", aCommand[i].getStr() );} - fprintf( stderr, "End parse\n" ); uno::Reference<presentation::XSlideShowController> xSlideShowController; uno::Reference<presentation::XPresentation2> xPresentation; try { diff --git a/sd/source/ui/remotecontrol/Server.cxx b/sd/source/ui/remotecontrol/Server.cxx index 9ad7f69affa9..ad17ac4d58fc 100644 --- a/sd/source/ui/remotecontrol/Server.cxx +++ b/sd/source/ui/remotecontrol/Server.cxx @@ -17,6 +17,7 @@ using namespace std; using namespace sd; +using namespace ::com::sun::star; using rtl::OString; Server::Server() @@ -35,6 +36,28 @@ void Server::listenThread() mTransmitter = &aTransmitter; Receiver aReceiver( &aTransmitter ); + uno::Reference<presentation::XSlideShowController> xSlideShowController; + uno::Reference<presentation::XPresentation2> xPresentation; + try { + uno::Reference< lang::XMultiServiceFactory > xServiceManager( + ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY_THROW ); + uno::Reference< frame::XFramesSupplier > xFramesSupplier( xServiceManager->createInstance( + "com.sun.star.frame.Desktop" ) , uno::UNO_QUERY_THROW ); + uno::Reference< frame::XFrame > xFrame ( xFramesSupplier->getActiveFrame(), uno::UNO_QUERY_THROW ); + uno::Reference<presentation::XPresentationSupplier> xPS ( xFrame->getController()->getModel(), uno::UNO_QUERY_THROW); + uno::Reference<presentation::XPresentation2> xPresentation( + xPS->getPresentation(), uno::UNO_QUERY_THROW); + if ( xPresentation->isRunning() ) + { + presentationStarted( xPresentation->getController() ); + } + } + catch ( com::sun::star::uno::RuntimeException &e ) + { + //return; + } + + // TODO: decryption while (true) { @@ -72,6 +95,7 @@ void Server::listenThread() // TODO: deal with transmision errors gracefully. } + mTransmitter = NULL; } @@ -101,10 +125,11 @@ void Server::execute() void Server::presentationStarted( css::uno::Reference< css::presentation::XSlideShowController > rController ) { - - fprintf( stderr, "Registering\n" ); - new Listener( rController, *mTransmitter ); - + if ( mTransmitter ) + { + Listener* aListener = new Listener( *mTransmitter ); + aListener->init( rController ); + } } |