summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorAndrzej J. R. Hunt <andrzej@ahunt.org>2012-07-17 17:48:07 +0200
committerMichael Meeks <michael.meeks@suse.com>2012-08-06 10:22:57 +0100
commitd57230d33811aa317b53e12c3d81f5d7d7bc93c8 (patch)
tree4148b14f78318183cb8b8848db805c8382c24519 /sd
parenta1e8ed9831d7f7af45932841244b4551a5a92ad3 (diff)
Added registration of the slideshow listener.
Change-Id: I Icaf2fe03e5f5b8ee9de3138b8dd28d837c734e94
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/remotecontrol/Listener.cxx54
-rw-r--r--sd/source/ui/remotecontrol/Listener.hxx12
-rw-r--r--sd/source/ui/remotecontrol/Receiver.cxx5
-rw-r--r--sd/source/ui/remotecontrol/Server.cxx33
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 );
+ }
}