/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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 mozilla_dom_bluetooth_bluez_BluetoothAvrcpManager_h #define mozilla_dom_bluetooth_bluez_BluetoothAvrcpManager_h #include "BluetoothCommon.h" #include "BluetoothProfileController.h" #include "BluetoothProfileManagerBase.h" BEGIN_BLUETOOTH_NAMESPACE class BluetoothAvrcpManager : public BluetoothProfileManagerBase { public: BT_DECL_PROFILE_MGR_BASE virtual void GetName(nsACString& aName) { aName.AssignLiteral("AVRCP"); } static BluetoothAvrcpManager* Get(); // AVRCP-specific functions void SetConnected(bool aConnected); void UpdateMetaData(const nsAString& aTitle, const nsAString& aArtist, const nsAString& aAlbum, uint64_t aMediaNumber, uint64_t aTotalMediaCount, uint32_t aDuration); void UpdatePlayStatus(uint32_t aDuration, uint32_t aPosition, ControlPlayStatus aPlayStatus); void GetAlbum(nsAString& aAlbum); uint32_t GetDuration(); ControlPlayStatus GetPlayStatus(); uint32_t GetPosition(); uint64_t GetMediaNumber(); void GetTitle(nsAString& aTitle); protected: virtual ~BluetoothAvrcpManager(); private: BluetoothAvrcpManager(); bool Init(); void HandleShutdown(); void NotifyConnectionStatusChanged(); BluetoothAddress mDeviceAddress; RefPtr mController; // AVRCP data member bool mAvrcpConnected; nsString mAlbum; nsString mArtist; nsString mTitle; uint32_t mDuration; uint64_t mMediaNumber; uint64_t mTotalMediaCount; uint32_t mPosition; ControlPlayStatus mPlayStatus; }; END_BLUETOOTH_NAMESPACE #endif // mozilla_dom_bluetooth_bluez_BluetoothAvrcpManager_h