diff options
author | Andrzej J. R. Hunt <andrzej@ahunt.org> | 2012-07-17 23:03:31 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-08-06 10:22:57 +0100 |
commit | 6368d371b00cc3f62530b9b95bf04ad07f24319a (patch) | |
tree | 86377046c1b2cbd9d0f710f1465e42d26337595d | |
parent | d57230d33811aa317b53e12c3d81f5d7d7bc93c8 (diff) |
Fixed constructor issue in Listener, fixed usage of Transmitter.
Change-Id: I875cb1fba51faadafd8f7f0e34ef6b56a818bb7a
7 files changed, 58 insertions, 57 deletions
diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/Client.java b/android/sdremote/src/org/libreoffice/impressremote/communication/Client.java index d4c1c4e05d69..98f713b184fa 100644 --- a/android/sdremote/src/org/libreoffice/impressremote/communication/Client.java +++ b/android/sdremote/src/org/libreoffice/impressremote/communication/Client.java @@ -56,6 +56,7 @@ public abstract class Client { String aTemp; // read until empty line while ((aTemp = aReader.readLine()).length() != 0) { + System.out.println("Read:" + aTemp); aList.add(aTemp); } mReceiver.parseCommand(aList); diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java b/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java index e26ef3128295..8418cab550b5 100644 --- a/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java +++ b/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java @@ -25,6 +25,7 @@ public class Receiver { } public void parseCommand(ArrayList<String> aCommand) { + System.out.println("parsing " +aCommand.get(0)); if (mActivityMessenger == null) { return; } diff --git a/sd/source/ui/remotecontrol/Listener.cxx b/sd/source/ui/remotecontrol/Listener.cxx index 25f51077221e..a13752f05fbf 100644 --- a/sd/source/ui/remotecontrol/Listener.cxx +++ b/sd/source/ui/remotecontrol/Listener.cxx @@ -10,26 +10,39 @@ #include <comphelper/processfactory.hxx> #include <com/sun/star/presentation/XPresentationSupplier.hpp> #include <com/sun/star/presentation/XPresentation2.hpp> + +#include <rtl/strbuf.hxx> + #include "Listener.hxx" using namespace sd; using namespace ::com::sun::star::presentation; using namespace ::com::sun::star::frame; using rtl::OString; +using rtl::OStringBuffer; -Listener::Listener( sd::Transmitter& rTransmitter ) +Listener::Listener( sd::Transmitter *aTransmitter ) : ::cppu::WeakComponentImplHelper1< XSlideShowListener>( m_aMutex ) { + fprintf( stderr, "Creating Transmitter\n" ); + mTransmitter = aTransmitter; } -void Listener::init(css::uno::Reference< css::presentation::XSlideShowController > aController) +Listener::~Listener() { - aController->addSlideShowListener(static_cast<XSlideShowListener*>(this)); } - - +void Listener::init(css::uno::Reference< css::presentation::XSlideShowController >& aController) +{ + fprintf( stderr, "Initing Transmitter\n" ); + if (aController.is() ) + { +// mController = aController; + aController->addSlideShowListener(static_cast<XSlideShowListener*>(this));- + } + fprintf( stderr, "Initiated Transmitter\n" ); +} //----- XAnimationListener ---------------------------------------------------- void SAL_CALL Listener::beginEvent(const css::uno::Reference< @@ -46,10 +59,11 @@ void SAL_CALL Listener::endEvent( const css::uno::Reference< } void SAL_CALL Listener::repeat( const css::uno::Reference< - css::animations::XAnimationNode >& rNode, ::sal_Int32 Repeat ) + css::animations::XAnimationNode >& rNode, ::sal_Int32 aRepeat ) throw (css::uno::RuntimeException) { (void) rNode; + (void) aRepeat; } @@ -68,40 +82,16 @@ void SAL_CALL Listener::resumed (void) void SAL_CALL Listener::slideEnded (sal_Bool bReverse) throw (css::uno::RuntimeException) { + fprintf( stderr, "slideEnded\n" ); (void) bReverse; - fprintf( stderr, "slidenede\n" ); -// (void) bReverse; -// JsonBuilder *aBuilder = json_builder_new(); -// -// -// json_builder_begin_object( aBuilder ); -// json_builder_set_member_name( aBuilder, "slide_number"); -// json_builder_add_int_value( aBuilder, 2 ); -// // FIXME: get the slide number -// json_builder_end_object( aBuilder ); -// -// JsonGenerator *aGen = json_generator_new(); -// JsonNode *aRoot = json_builder_get_root( aBuilder ); -// json_generator_set_root( aGen, aRoot ); -// char *aCommand = json_generator_to_data( aGen, NULL); -// -// json_node_free( aRoot ); -// g_object_unref ( aGen ); -// g_object_unref ( aBuilder ); -// -// sal_Int32 aLen = strlen( aCommand ); -// -// OString aLengthString = OString::valueOf( aLen ); -// const char *aLengthChar = aLengthString.getStr(); -// -// sal_Int32 aLengthLength = aLengthString.getLength(); -// -// mStreamSocket.write( aLengthChar, aLengthLength ); -// mStreamSocket.write( "\n", 1 ); -// mStreamSocket.write( aCommand, aLen ); -// // Transmit here. -// -// g_free( aCommand ); + sal_Int32 aSlide = mController->getCurrentSlideIndex(); + + OStringBuffer aBuilder( "slide_updated\n" ); + aBuilder.append( OString::valueOf( aSlide ) ); + aBuilder.append( "\n\n" ); + + mTransmitter->addMessage( aBuilder.makeStringAndClear() , + Transmitter::Priority::HIGH ); } void SAL_CALL Listener::hyperLinkClicked (const rtl::OUString &) @@ -112,17 +102,19 @@ void SAL_CALL Listener::hyperLinkClicked (const rtl::OUString &) void SAL_CALL Listener::slideTransitionStarted (void) throw (css::uno::RuntimeException) { + fprintf( stderr, "slideTransitionStarted\n" ); } void SAL_CALL Listener::slideTransitionEnded (void) throw (css::uno::RuntimeException) { - fprintf( stderr, "slidetreatasdfanede\n" ); + fprintf( stderr, "slideTransitionEnded\n" ); } void SAL_CALL Listener::slideAnimationsEnded (void) throw (css::uno::RuntimeException) { + fprintf( stderr, "slideAnimationsEnded\n" ); } void SAL_CALL Listener::disposing (void) @@ -134,6 +126,7 @@ void SAL_CALL Listener::disposing ( const css::lang::EventObject& rEvent) throw (::com::sun::star::uno::RuntimeException) { + (void) rEvent; // FIXME: disconnect as appropriate } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file diff --git a/sd/source/ui/remotecontrol/Listener.hxx b/sd/source/ui/remotecontrol/Listener.hxx index e05c25978c56..a70ede14fa3c 100644 --- a/sd/source/ui/remotecontrol/Listener.hxx +++ b/sd/source/ui/remotecontrol/Listener.hxx @@ -28,8 +28,9 @@ class Listener public ::cppu::WeakComponentImplHelper1< css::presentation::XSlideShowListener > { public: - Listener( sd::Transmitter& rTransmitter ); - void init( css::uno::Reference< css::presentation::XSlideShowController > aController); + Listener( sd::Transmitter *aTransmitter ); + ~Listener(); + void init( css::uno::Reference< css::presentation::XSlideShowController >& aController); // XAnimationListener virtual void SAL_CALL beginEvent(const css::uno::Reference< @@ -57,8 +58,9 @@ public: throw (com::sun::star::uno::RuntimeException); private: - css::uno::Reference<css::presentation::XSlideShowController> mxSlideShowController; osl::StreamSocket mStreamSocket; + sd::Transmitter *mTransmitter; + css::uno::Reference< css::presentation::XSlideShowController > mController; }; } #endif // _SD_IMPRESSREMOTE_LISTENER_HXX diff --git a/sd/source/ui/remotecontrol/Receiver.cxx b/sd/source/ui/remotecontrol/Receiver.cxx index 28f01be0a6c6..153ffc51dc92 100644 --- a/sd/source/ui/remotecontrol/Receiver.cxx +++ b/sd/source/ui/remotecontrol/Receiver.cxx @@ -42,9 +42,6 @@ Receiver::~Receiver() void Receiver::parseCommand( std::vector<OString> aCommand ) { - fprintf( stderr, "Parsing:\n"); - for (size_t i = 0; i < aCommand.size(); i++) - { uno::Reference<presentation::XSlideShowController> xSlideShowController; uno::Reference<presentation::XPresentation2> xPresentation; try { @@ -113,7 +110,7 @@ void Receiver::parseCommand( std::vector<OString> aCommand ) } } // FIXME: remove later, this is just to test functionality - //sendPreview( 0, xSlideShowController, mTransmitter ); + sendPreview( 0, xSlideShowController, mTransmitter ); } @@ -190,8 +187,6 @@ preparePreview(sal_uInt32 aSlideNumber, xFilter->filter( aProps ); - fprintf( stderr, "%s\n", rtl::OUStringToOString( aFileURL , RTL_TEXTENCODING_UTF8 ).getStr() ); - // FIXME: error handling. File aFile( aFileURL ); diff --git a/sd/source/ui/remotecontrol/Server.cxx b/sd/source/ui/remotecontrol/Server.cxx index ad17ac4d58fc..748cbf9a13f0 100644 --- a/sd/source/ui/remotecontrol/Server.cxx +++ b/sd/source/ui/remotecontrol/Server.cxx @@ -10,6 +10,8 @@ #include <algorithm> #include <vector> +#include <comphelper/processfactory.hxx> + #include "sddll.hxx" #include "Server.hxx" #include "Receiver.hxx" @@ -32,13 +34,13 @@ Server::~Server() // Run as a thread void Server::listenThread() { - Transmitter aTransmitter( mStreamSocket ); - mTransmitter = &aTransmitter; - Receiver aReceiver( &aTransmitter ); +// Transmitter aTransmitter( mStreamSocket ); + mTransmitter = new Transmitter( mStreamSocket); + Receiver aReceiver( mTransmitter ); + mTransmitter->addMessage( "Hello world\n\n", Transmitter::Priority::HIGH ); - uno::Reference<presentation::XSlideShowController> xSlideShowController; - uno::Reference<presentation::XPresentation2> xPresentation; try { + fprintf( stderr, "Trying to add a Listener in listenThread\n" ); uno::Reference< lang::XMultiServiceFactory > xServiceManager( ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY_THROW ); uno::Reference< frame::XFramesSupplier > xFramesSupplier( xServiceManager->createInstance( @@ -50,11 +52,13 @@ void Server::listenThread() if ( xPresentation->isRunning() ) { presentationStarted( xPresentation->getController() ); + fprintf( stderr, "Added the listener\n"); } + fprintf( stderr, "We aren't running\n" ); } catch ( com::sun::star::uno::RuntimeException &e ) { - //return; + fprintf( stderr, "Exeption on add\n" ); } @@ -95,6 +99,7 @@ void Server::listenThread() // TODO: deal with transmision errors gracefully. } + delete mTransmitter; mTransmitter = NULL; } @@ -127,8 +132,10 @@ void Server::presentationStarted( css::uno::Reference< { if ( mTransmitter ) { - Listener* aListener = new Listener( *mTransmitter ); + fprintf( stderr, "Adding Listener on start of presentation.\n" ); + Listener* aListener = new Listener( mTransmitter ); aListener->init( rController ); + fprintf( stderr, "Added the listener as desired.\n" ); } } diff --git a/sd/source/ui/remotecontrol/Transmitter.cxx b/sd/source/ui/remotecontrol/Transmitter.cxx index 276fc89bc442..bc25355a1bcf 100644 --- a/sd/source/ui/remotecontrol/Transmitter.cxx +++ b/sd/source/ui/remotecontrol/Transmitter.cxx @@ -26,6 +26,7 @@ Transmitter::Transmitter( StreamSocket &aSocket ) void Transmitter::execute() { + fprintf( stderr, "Waiting\n" ); while( mQueuesNotEmpty.wait() ) { while ( true ) @@ -35,6 +36,7 @@ Transmitter::execute() { OString aMessage = mHighPriority.front(); mHighPriority.pop(); + fprintf(stderr , " Writing HIGHP:\n%s<<END>>", aMessage.getStr() ); mStreamSocket.write( aMessage.getStr(), aMessage.getLength() ); } @@ -42,10 +44,10 @@ Transmitter::execute() { OString aMessage = mLowPriority.front(); mLowPriority.pop(); + fprintf(stderr , " Writing LOWP:\n%s<<END>>", aMessage.getStr() ); mStreamSocket.write( aMessage.getStr(), aMessage.getLength() ); } - //fprintf( stderr, "Lowsize:%i, Highsize:%i\n", mLowPriority.size(), mHighPriority.size() ); if ( (mLowPriority.size() == 0) && (mHighPriority.size() == 0) ) { mQueuesNotEmpty.reset(); |