/* -*- 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_SERVER_HXX #define _SD_IMPRESSREMOTE_SERVER_HXX // SERVER #include #include #include #include #include #include #include #include #include #include #include "sddllapi.h" namespace css = ::com::sun::star; /** * The port for use for the main communication between LibO and remote control app. */ #define PORT 1599 #define CHARSET RTL_TEXTENCODING_UTF8 namespace css = ::com::sun::star; namespace sd { class Communicator; class BufferedStreamSocket; struct ClientInfo { rtl::OUString mName; rtl::OUString mAddress; enum PROTOCOL { NETWORK = 1, BLUETOOTH }; ClientInfo( const rtl::OUString rName, const rtl::OUString rAddress ) : mName( rName ), mAddress( rAddress ) {} }; struct ClientInfoInternal; class RemoteServer : public salhelper::Thread { public: // Internal setup static void setup(); // For slideshowimpl to inform us. static void presentationStarted( const css::uno::Reference< css::presentation::XSlideShowController > &rController ); static void presentationStopped(); // For the control dialog SD_DLLPUBLIC static std::vector getClients(); SD_DLLPUBLIC static sal_Bool connectClient( ClientInfo *pClient, rtl::OUString aPin ); SD_DLLPUBLIC static bool isBluetoothDiscoverable(); SD_DLLPUBLIC static void setBluetoothDiscoverable( bool aDiscoverable ); // For the communicator static void removeCommunicator( Communicator* pCommunicator ); private: RemoteServer(); ~RemoteServer(); static RemoteServer *spServer; static ::osl::Mutex sDataMutex; static ::std::vector sCommunicators; osl::AcceptorSocket mSocket; ::std::vector mAvailableClients; void execute(); }; } #endif // _SD_IMPRESSREMOTE_SERVER_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */