[Libreoffice-commits] core.git: 2 commits - lo.xcent.in sd/Library_sd.mk sd/source

Tor Lillqvist tml at iki.fi
Sat Feb 16 02:03:55 PST 2013


 lo.xcent.in                                         |    6 
 sd/Library_sd.mk                                    |    1 
 sd/source/ui/remotecontrol/BluetoothServer.cxx      |  160 +++++++++++++++++++-
 sd/source/ui/remotecontrol/BluetoothServer.hxx      |    2 
 sd/source/ui/remotecontrol/BufferedStreamSocket.hxx |   10 -
 sd/source/ui/remotecontrol/Communicator.cxx         |    2 
 sd/source/ui/remotecontrol/Communicator.hxx         |   10 -
 sd/source/ui/remotecontrol/IBluetoothSocket.hxx     |   41 +++++
 sd/source/ui/remotecontrol/OSXBluetooth.h           |   33 ++++
 sd/source/ui/remotecontrol/OSXBluetooth.mm          |   48 ++++++
 sd/source/ui/remotecontrol/OSXBluetoothWrapper.hxx  |   40 +++++
 sd/source/ui/remotecontrol/Server.cxx               |    1 
 sd/source/ui/remotecontrol/Transmitter.cxx          |    2 
 sd/source/ui/remotecontrol/Transmitter.hxx          |    8 -
 14 files changed, 344 insertions(+), 20 deletions(-)

New commits:
commit d04298dd73a618ed27504cf6af584107c646451b
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat Feb 16 12:00:39 2013 +0200

    Add network and Bluetooth entitlements
    
    Change-Id: Ibf718c3ecaea14ddbd48a8642c179dd8657779ce

diff --git a/lo.xcent.in b/lo.xcent.in
index 46ee9ab..8e9451c 100644
--- a/lo.xcent.in
+++ b/lo.xcent.in
@@ -8,6 +8,12 @@
 	<true/>
 	<key>com.apple.security.files.user-selected.read-write</key>
 	<true/>
+	<key>com.apple.security.network.client</key>
+	<true/>
+	<key>com.apple.security.network.server</key>
+	<true/>
+	<key>com.apple.security.device.bluetooth</key>
+	<true/>
 	<!-- usb needed for the apple_remote thingie... -->
 	<key>com.apple.security.device.usb</key>
 	<true/>
commit f9685dc555cc79fe3a52caf9da39df37da750cd4
Author: Tor Lillqvist <tml at iki.fi>
Date:   Thu Feb 14 17:07:01 2013 +0200

    More work on the Impress Remote Control Bluetooth code for OS X
    
    Mostly the work of Thorsten, from December, adapted to compile against
    the current remote control code, and with one or two crucial things
    added. Plus lots of SAL_INFO calls added; once it works well many of
    them can be dropped. Does not work properly yet, do not cherry-pick
    just this to 4.0.
    
    Change-Id: I53361b49a2b6938c768be1ea0fc17eb5e46b6aa4

diff --git a/sd/Library_sd.mk b/sd/Library_sd.mk
index 679c836..4967845 100644
--- a/sd/Library_sd.mk
+++ b/sd/Library_sd.mk
@@ -543,6 +543,7 @@ else
 
 $(eval $(call gb_Library_add_objcxxobjects,sd,\
     sd/source/ui/remotecontrol/BluetoothServer \
+    sd/source/ui/remotecontrol/OSXBluetooth \
 ))
 
 $(eval $(call gb_Library_add_libs,sd,\
diff --git a/sd/source/ui/remotecontrol/BluetoothServer.cxx b/sd/source/ui/remotecontrol/BluetoothServer.cxx
index e877cca..1830a3b 100644
--- a/sd/source/ui/remotecontrol/BluetoothServer.cxx
+++ b/sd/source/ui/remotecontrol/BluetoothServer.cxx
@@ -9,7 +9,8 @@
 
 #include "BluetoothServer.hxx"
 
-#include <stdio.h>
+#include <iostream>
+#include <iomanip>
 
 #include <sal/log.hxx>
 
@@ -40,6 +41,7 @@
 #endif
 
 #ifdef MACOSX
+  #include <osl/conditn.hxx> // Include this early to avoid error as check() gets defined by some SDK header to empty
   #include <premac.h>
   #if MACOSX_SDK_VERSION >= 1070
     #import <IOBluetooth/IOBluetooth.h>
@@ -50,6 +52,8 @@
     #import <IOBluetooth/objc/IOBluetoothSDPServiceRecord.h>
   #endif
   #include <postmac.h>
+  #import "OSXBluetooth.h"
+  #include "OSXBluetoothWrapper.hxx"
 #endif
 
 #ifdef __MINGW32__
@@ -104,6 +108,141 @@ DBusGProxy* bluezGetDefaultAdapter( DBusGConnection* aConnection,
 }
 #endif // defined(LINUX) && defined(ENABLE_DBUS)
 
+#if defined(MACOSX)
+
+OSXBluetoothWrapper::OSXBluetoothWrapper( IOBluetoothRFCOMMChannel* channel ) :
+    mpChannel(channel),
+    mnMTU(0),
+    mHaveBytes(),
+    mMutex(),
+    mBuffer()
+{
+    // silly enough, can't write more than mnMTU bytes at once
+    mnMTU = [channel getMTU];
+
+    SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::OSXBluetoothWrapper(): mnMTU=" << mnMTU );
+}
+
+sal_Int32 OSXBluetoothWrapper::readLine( rtl::OString& aLine )
+{
+    SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::readLine()" );
+
+    while( true )
+    {
+        {
+            SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::readLine: entering mutex" );
+            ::osl::MutexGuard aQueueGuard( mMutex );
+            SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::readLine: entered mutex" );
+
+#ifdef SAL_LOG_INFO
+            // We should have in the sal logging some standard way to
+            // output char buffers with non-printables escaped.
+            std::ostringstream s;
+            for (unsigned char *p = (unsigned char *) mBuffer.data(); p != (unsigned char *) mBuffer.data() + mBuffer.size(); p++)
+            {
+                if (*p == '\n')
+                    s << "\\n";
+                else if (*p < ' ' || (*p >= 0x7F && *p <= 0xFF))
+                    s << "\\0x" << std::hex << std::setw(2) << std::setfill('0') << (int) *p << std::setfill(' ') << std::setw(1) << std::dec;
+                else
+                    s << *p;
+            }
+            SAL_INFO( "sdremote.bluetooth", "  mBuffer:  \"" << s.str() << "\"" );
+#endif
+
+            // got enough bytes to return a line?
+            std::vector<char>::iterator aIt;
+            if ( (aIt = find( mBuffer.begin(), mBuffer.end(), '\n' ))
+                 != mBuffer.end() )
+            {
+                sal_uInt64 aLocation = aIt - mBuffer.begin();
+
+                aLine = OString( &(*mBuffer.begin()), aLocation );
+
+                mBuffer.erase( mBuffer.begin(), aIt + 1 ); // Also delete the empty line
+
+                // yeps
+                SAL_INFO( "sdremote.bluetooth", "  returning, got \"" << OStringToOUString( aLine, RTL_TEXTENCODING_UTF8 ) << "\"" );
+                return aLine.getLength() + 1;
+            }
+
+            // nope - wait some more (after releasing the mutex)
+            SAL_INFO( "sdremote.bluetooth", "  resetting mHaveBytes" );
+            mHaveBytes.reset();
+            SAL_INFO( "sdremote.bluetooth", "  leaving mutex" );
+        }
+
+        SAL_INFO( "sdremote.bluetooth", "  waiting for mHaveBytes" );
+        mHaveBytes.wait();
+        SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::readLine: got mHaveBytes" );
+    }
+}
+
+sal_Int32 OSXBluetoothWrapper::write( const void* pBuffer, sal_uInt32 n )
+{
+    SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::write(" << pBuffer << ", " << n << ") mpChannel=" << mpChannel );
+
+    char* ptr = (char*)pBuffer;
+    sal_uInt32 nBytesWritten = 0;
+    while( nBytesWritten < n )
+    {
+        int toWrite = n - nBytesWritten;
+        toWrite = toWrite <= mnMTU ? toWrite : mnMTU;
+        if ( [mpChannel writeSync:ptr length:toWrite] != kIOReturnSuccess )
+        {
+            SAL_INFO( "sdremote.bluetooth", "  [mpChannel writeSync:" << (void *) ptr << " length:" << toWrite << "] returned error, total written " << nBytesWritten );
+            return nBytesWritten;
+        }
+        ptr += toWrite;
+        nBytesWritten += toWrite;
+    }
+    SAL_INFO( "sdremote.bluetooth", "  total written " << nBytesWritten );
+    return nBytesWritten;
+}
+
+void OSXBluetoothWrapper::appendData(void* pBuffer, size_t len)
+{
+    SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::appendData(" << pBuffer << ", " << len << ")" );
+
+    if( len )
+    {
+        SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::appendData: entering mutex" );
+        ::osl::MutexGuard aQueueGuard( mMutex );
+        SAL_INFO( "sdremote.bluetooth", "OSXBluetoothWrapper::appendData: entered mutex" );
+        mBuffer.insert(mBuffer.begin()+mBuffer.size(),
+                       (char*)pBuffer, (char *)pBuffer+len);
+        SAL_INFO( "sdremote.bluetooth", "  setting mHaveBytes" );
+        mHaveBytes.set();
+        SAL_INFO( "sdremote.bluetooth", "  leaving mutex" );
+    }
+}
+
+void incomingCallback( void *userRefCon,
+                       IOBluetoothUserNotificationRef inRef,
+                       IOBluetoothObjectRef objectRef )
+{
+    (void) inRef;
+
+    SAL_INFO( "sdremote.bluetooth", "incomingCallback()" );
+
+    BluetoothServer* pServer = (BluetoothServer*)userRefCon;
+
+    IOBluetoothRFCOMMChannel* channel = [IOBluetoothRFCOMMChannel withRFCOMMChannelRef:(IOBluetoothRFCOMMChannelRef)objectRef];
+
+    OSXBluetoothWrapper* socket = new OSXBluetoothWrapper( channel);
+    Communicator* pCommunicator = new Communicator( socket );
+    pServer->addCommunicator( pCommunicator );
+
+    ChannelDelegate* delegate = [[ChannelDelegate alloc] initWithCommunicatorAndSocket: pCommunicator socket: socket];
+    [channel setDelegate: delegate];
+    [delegate retain];
+
+    pCommunicator->launch();
+}
+
+#endif // MACOSX
+
+
 BluetoothServer::BluetoothServer( std::vector<Communicator*>* pCommunicators )
   : mpCommunicators( pCommunicators )
 {
@@ -260,6 +399,11 @@ void BluetoothServer::setDiscoverable( bool aDiscoverable )
 #endif
 }
 
+void BluetoothServer::addCommunicator( Communicator* pCommunicator )
+{
+    mpCommunicators->push_back( pCommunicator );
+}
+
 void SAL_CALL BluetoothServer::run()
 {
     SAL_INFO( "sdremote.bluetooth", "BluetoothServer::run called" );
@@ -526,7 +670,7 @@ void SAL_CALL BluetoothServer::run()
     IOBluetoothSDPServiceRecordRef serviceRecordRef;
     IOReturn rc = IOBluetoothAddServiceDict((CFDictionaryRef) dict, &serviceRecordRef);
 
-    SAL_INFO("sd.bluetooth", "IOBluetoothAddServiceDict returned " << rc);
+    SAL_INFO("sdremote.bluetooth", "IOBluetoothAddServiceDict returned " << rc);
 
     if (rc == kIOReturnSuccess)
     {
@@ -539,9 +683,17 @@ void SAL_CALL BluetoothServer::run()
         BluetoothSDPServiceRecordHandle serviceRecordHandle;
         [serviceRecord getServiceRecordHandle: &serviceRecordHandle];
 
-        // Do more...
+        // Register callback for incoming connections
+        IOBluetoothUserNotificationRef callbackRef =
+            IOBluetoothRegisterForFilteredRFCOMMChannelOpenNotifications(
+                incomingCallback,
+                this,
+                channelID,
+                kIOBluetoothUserNotificationChannelDirectionIncoming);
+
+        (void) callbackRef;
 
-        (void) serviceRecord;
+        [serviceRecord release];
     }
     (void) mpCommunicators;
 #else
diff --git a/sd/source/ui/remotecontrol/BluetoothServer.hxx b/sd/source/ui/remotecontrol/BluetoothServer.hxx
index 51be45f..d8c9879 100644
--- a/sd/source/ui/remotecontrol/BluetoothServer.hxx
+++ b/sd/source/ui/remotecontrol/BluetoothServer.hxx
@@ -24,6 +24,8 @@ namespace sd
 
         static bool isDiscoverable();
         static void setDiscoverable( bool aDiscoverable );
+        void addCommunicator( Communicator* pCommunicator );
+
     private:
         BluetoothServer( std::vector<Communicator*>* pCommunicators );
         ~BluetoothServer();
diff --git a/sd/source/ui/remotecontrol/BufferedStreamSocket.hxx b/sd/source/ui/remotecontrol/BufferedStreamSocket.hxx
index bf9a58a..eafaa6b 100644
--- a/sd/source/ui/remotecontrol/BufferedStreamSocket.hxx
+++ b/sd/source/ui/remotecontrol/BufferedStreamSocket.hxx
@@ -9,7 +9,7 @@
 #ifndef _SD_IMPRESSREMOTE_BUFFEREDSTREAMSOCKET_HXX
 #define _SD_IMPRESSREMOTE_BUFFEREDSTREAMSOCKET_HXX
 
-#include <boost/noncopyable.hpp>
+#include "IBluetoothSocket.hxx"
 #include <osl/socket.hxx>
 #include <vector>
 
@@ -28,8 +28,8 @@ namespace sd
      * integrated into osl Sockets.
      */
     class BufferedStreamSocket :
-        private ::osl::StreamSocket,
-        private ::boost::noncopyable
+        public IBluetoothSocket,
+        private ::osl::StreamSocket
     {
         public:
             /**
@@ -47,9 +47,9 @@ namespace sd
              * Returns whatever the last call of recv returned, i.e. 0 or less
              * if there was a problem in communications.
              */
-            sal_Int32 readLine(OString& aLine);
+            virtual sal_Int32 readLine( OString& aLine );
 
-            sal_Int32 write( const void* pBuffer, sal_uInt32 n );
+            virtual sal_Int32 write( const void* pBuffer, sal_uInt32 n );
 
             void getPeerAddr(osl::SocketAddr&);
         private:
diff --git a/sd/source/ui/remotecontrol/Communicator.cxx b/sd/source/ui/remotecontrol/Communicator.cxx
index 84467da..908f732 100644
--- a/sd/source/ui/remotecontrol/Communicator.cxx
+++ b/sd/source/ui/remotecontrol/Communicator.cxx
@@ -22,7 +22,7 @@ using namespace std;
 using namespace com::sun::star;
 using namespace osl;
 
-Communicator::Communicator( BufferedStreamSocket *pSocket ):
+Communicator::Communicator( IBluetoothSocket *pSocket ):
     Thread( "CommunicatorThread" ),
     mpSocket( pSocket ),
     pTransmitter( 0 ),
diff --git a/sd/source/ui/remotecontrol/Communicator.hxx b/sd/source/ui/remotecontrol/Communicator.hxx
index 10078bf..a783bac 100644
--- a/sd/source/ui/remotecontrol/Communicator.hxx
+++ b/sd/source/ui/remotecontrol/Communicator.hxx
@@ -9,20 +9,17 @@
 #ifndef _SD_IMPRESSREMOTE_COMMUNICATOR_HXX
 #define _SD_IMPRESSREMOTE_COMMUNICATOR_HXX
 
-// SERVER
-#include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <vector>
 
-#include <osl/socket.hxx>
 #include <rtl/ref.hxx>
 #include <salhelper/thread.hxx>
 
 #include <com/sun/star/presentation/XSlideShowController.hpp>
 
-#include "BufferedStreamSocket.hxx"
+#include "IBluetoothSocket.hxx"
 
 #define CHARSET RTL_TEXTENCODING_UTF8
 namespace sd
@@ -39,7 +36,7 @@ namespace sd
     class Communicator : public salhelper::Thread
     {
         public:
-            Communicator( BufferedStreamSocket *pSocket );
+            Communicator( IBluetoothSocket *pSocket );
             ~Communicator();
 
             void presentationStarted( const css::uno::Reference<
@@ -49,7 +46,7 @@ namespace sd
 
         private:
             void execute();
-            BufferedStreamSocket *mpSocket;
+            IBluetoothSocket *mpSocket;
 
             Transmitter *pTransmitter;
             rtl::Reference<Listener> mListener;
@@ -57,4 +54,5 @@ namespace sd
 }
 
 #endif // _SD_IMPRESSREMOTE_COMMUNICATOR_HXX
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/remotecontrol/IBluetoothSocket.hxx b/sd/source/ui/remotecontrol/IBluetoothSocket.hxx
new file mode 100644
index 0000000..1949367
--- /dev/null
+++ b/sd/source/ui/remotecontrol/IBluetoothSocket.hxx
@@ -0,0 +1,41 @@
+/* -*- 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 _SD_IMPRESSREMOTE_IBLUETOOTHSOCKET_HXX
+#define _SD_IMPRESSREMOTE_IBLUETOOTHSOCKET_HXX
+
+#include <rtl/string.hxx>
+#include <boost/noncopyable.hpp>
+
+namespace sd
+{
+    /** Interface for bluetooth data io
+     */
+    struct IBluetoothSocket : private boost::noncopyable
+    {
+        virtual ~IBluetoothSocket() {}
+
+        /** Blocks until a line is read.
+
+            @return whatever the last call of recv returned, i.e. 0 or less
+                    if there was a problem in communications.
+         */
+        virtual sal_Int32 readLine(rtl::OString& aLine) = 0;
+
+        /** Write a number of bytes
+
+            @return number of bytes actually written
+         */
+        virtual sal_Int32 write( const void* pBuffer, sal_uInt32 n ) = 0;
+    };
+}
+
+#endif // _SD_IMPRESSREMOTE_IBLUETOOTHSOCKET_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/remotecontrol/OSXBluetooth.h b/sd/source/ui/remotecontrol/OSXBluetooth.h
new file mode 100644
index 0000000..4c1900a
--- /dev/null
+++ b/sd/source/ui/remotecontrol/OSXBluetooth.h
@@ -0,0 +1,33 @@
+/* -*- Mode: ObjC; 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 INCLUDED_OSXBLUETOOTH_H
+#define INCLUDED_OSXBLUETOOTH_H
+
+#import <IOBluetooth/objc/IOBluetoothRFCOMMChannel.h>
+
+#include "IBluetoothSocket.hxx"
+#include "Communicator.hxx"
+#include "OSXBluetoothWrapper.hxx"
+
+ at interface ChannelDelegate : NSObject<IOBluetoothRFCOMMChannelDelegate>
+{
+    sd::Communicator* pCommunicator;
+    sd::OSXBluetoothWrapper* pSocket;
+}
+
+- (id) initWithCommunicatorAndSocket:(sd::Communicator*)communicator socket:(sd::OSXBluetoothWrapper*)socket;
+- (void) rfcommChannelData:(IOBluetoothRFCOMMChannel*)rfcommChannel data:(void *)dataPointer length:(size_t)dataLength;
+- (void) rfcommChannelClosed:(IOBluetoothRFCOMMChannel*)rfcommChannel;
+
+ at end
+
+#endif /* INCLUDED_OSXBLUETOOTH_H */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/remotecontrol/OSXBluetooth.mm b/sd/source/ui/remotecontrol/OSXBluetooth.mm
new file mode 100644
index 0000000..2c21e69
--- /dev/null
+++ b/sd/source/ui/remotecontrol/OSXBluetooth.mm
@@ -0,0 +1,48 @@
+/* -*- Mode: ObjC; 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 <osl/conditn.hxx> // Include this early to avoid error as check() gets defined by some SDK header to empty
+
+#include <premac.h>
+#import <IOBluetooth/objc/IOBluetoothRFCOMMChannel.h>
+#include <postmac.h>
+
+#include "OSXBluetooth.h"
+
+ at implementation ChannelDelegate
+
+- (id) initWithCommunicatorAndSocket:(sd::Communicator*)communicator socket:(sd::OSXBluetoothWrapper*)socket
+{
+    pCommunicator = communicator;
+    pSocket = socket;
+    return self;
+}
+
+- (void) rfcommChannelData:(IOBluetoothRFCOMMChannel*)rfcommChannel data:(void *)dataPointer length:(size_t)dataLength
+{
+    (void) rfcommChannel;
+
+    if ( pSocket )
+    {
+        pSocket->appendData(dataPointer, dataLength);
+    }
+}
+
+- (void) rfcommChannelClosed:(IOBluetoothRFCOMMChannel*)rfcommChannel 
+{
+    (void) rfcommChannel;
+
+    // TODO: broadcast premature closing of data channel
+    pCommunicator = NULL;
+    pSocket = NULL;
+}
+
+ at end
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/remotecontrol/OSXBluetoothWrapper.hxx b/sd/source/ui/remotecontrol/OSXBluetoothWrapper.hxx
new file mode 100644
index 0000000..6a61a24
--- /dev/null
+++ b/sd/source/ui/remotecontrol/OSXBluetoothWrapper.hxx
@@ -0,0 +1,40 @@
+/* -*- 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 _SD_IMPRESSREMOTE_OSXBLUETOOTHWRAPPER_HXX
+#define _SD_IMPRESSREMOTE_OSXBLUETOOTHWRAPPER_HXX
+
+#include <rtl/string.hxx>
+#include <osl/conditn.hxx>
+#include <osl/mutex.hxx>
+#include <vector>
+
+#include "IBluetoothSocket.hxx"
+
+namespace sd
+{
+    class OSXBluetoothWrapper : public IBluetoothSocket
+    {
+        IOBluetoothRFCOMMChannel* mpChannel;
+        int                       mnMTU;
+        osl::Condition            mHaveBytes;
+        osl::Mutex                mMutex;
+        std::vector<char>         mBuffer;
+
+    public:
+        OSXBluetoothWrapper( IOBluetoothRFCOMMChannel* channel );
+        virtual sal_Int32 readLine( rtl::OString& aLine );
+        virtual sal_Int32 write( const void* pBuffer, sal_uInt32 len );
+        void appendData(void* pBuffer, size_t len );
+    };
+}
+
+#endif // _SD_IMPRESSREMOTE_OSXBLUETOOTHWRAPPER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/remotecontrol/Server.cxx b/sd/source/ui/remotecontrol/Server.cxx
index 76b4dd7..9989ed0 100644
--- a/sd/source/ui/remotecontrol/Server.cxx
+++ b/sd/source/ui/remotecontrol/Server.cxx
@@ -29,6 +29,7 @@
 #include "RemoteServer.hxx"
 #include "BluetoothServer.hxx"
 #include "Communicator.hxx"
+#include "BufferedStreamSocket.hxx"
 
 using namespace std;
 using namespace sd;
diff --git a/sd/source/ui/remotecontrol/Transmitter.cxx b/sd/source/ui/remotecontrol/Transmitter.cxx
index e8e3388..a7c211b 100644
--- a/sd/source/ui/remotecontrol/Transmitter.cxx
+++ b/sd/source/ui/remotecontrol/Transmitter.cxx
@@ -13,7 +13,7 @@ using namespace std;
 using namespace osl; // Sockets etc.
 using namespace sd;
 
-Transmitter::Transmitter( BufferedStreamSocket* aSocket )
+Transmitter::Transmitter( IBluetoothSocket* aSocket )
   : pStreamSocket( aSocket ),
     mQueuesNotEmpty(),
     mFinishRequested(),
diff --git a/sd/source/ui/remotecontrol/Transmitter.hxx b/sd/source/ui/remotecontrol/Transmitter.hxx
index 80e09b1..783e1d5 100644
--- a/sd/source/ui/remotecontrol/Transmitter.hxx
+++ b/sd/source/ui/remotecontrol/Transmitter.hxx
@@ -6,12 +6,13 @@
  * 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 _SD_IMPRESSREMOTE_TRANSMITTER_HXX
 #define _SD_IMPRESSREMOTE_TRANSMITTER_HXX
 
 #include <osl/conditn.hxx>
 #include <osl/mutex.hxx>
-#include "BufferedStreamSocket.hxx"
+#include "IBluetoothSocket.hxx"
 #include <osl/thread.hxx>
 #include <rtl/string.hxx>
 
@@ -25,7 +26,7 @@ class Transmitter
 {
 public:
     enum Priority { PRIORITY_LOW = 1, PRIORITY_HIGH };
-    Transmitter( ::sd::BufferedStreamSocket* aSocket );
+    Transmitter( ::sd::IBluetoothSocket* aSocket );
     ~Transmitter();
     void addMessage( const rtl::OString& aMessage, const Priority aPriority );
     void notifyFinished();
@@ -33,7 +34,7 @@ public:
 private:
     virtual void SAL_CALL run();
 
-    ::sd::BufferedStreamSocket* pStreamSocket;
+    ::sd::IBluetoothSocket* pStreamSocket;
 
     ::osl::Condition mQueuesNotEmpty;
     ::osl::Condition mFinishRequested;
@@ -46,4 +47,5 @@ private:
 
 }
 #endif // _SD_IMPRESSREMOTE_TRANSMITTER_HXX
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list