dom/bluetooth/BluetoothAdapter.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
     2 /* vim: set ts=2 et sw=2 tw=80: */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     5  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #ifndef mozilla_dom_bluetooth_bluetoothadapter_h__
     8 #define mozilla_dom_bluetooth_bluetoothadapter_h__
    10 #include "mozilla/Attributes.h"
    11 #include "mozilla/DOMEventTargetHelper.h"
    12 #include "BluetoothCommon.h"
    13 #include "BluetoothPropertyContainer.h"
    14 #include "nsCOMPtr.h"
    16 namespace mozilla {
    17 namespace dom {
    18 class DOMRequest;
    19 struct MediaMetaData;
    20 struct MediaPlayStatus;
    21 }
    22 }
    24 BEGIN_BLUETOOTH_NAMESPACE
    26 class BluetoothDevice;
    27 class BluetoothSignal;
    28 class BluetoothNamedValue;
    29 class BluetoothValue;
    31 class BluetoothAdapter : public DOMEventTargetHelper
    32                        , public BluetoothSignalObserver
    33                        , public BluetoothPropertyContainer
    34 {
    35 public:
    36   NS_DECL_ISUPPORTS_INHERITED
    38   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(BluetoothAdapter,
    39                                                          DOMEventTargetHelper)
    41   static already_AddRefed<BluetoothAdapter>
    42   Create(nsPIDOMWindow* aOwner, const BluetoothValue& aValue);
    44   void Notify(const BluetoothSignal& aParam);
    46   void Unroot();
    47   virtual void SetPropertyByValue(const BluetoothNamedValue& aValue) MOZ_OVERRIDE;
    49   virtual void DisconnectFromOwner() MOZ_OVERRIDE;
    51   void GetAddress(nsString& aAddress) const
    52   {
    53     aAddress = mAddress;
    54   }
    56   uint32_t
    57   Class() const
    58   {
    59     return mClass;
    60   }
    62   void
    63   GetName(nsString& aName) const
    64   {
    65     aName = mName;
    66   }
    68   bool
    69   Discovering() const
    70   {
    71     return mDiscovering;
    72   }
    74   bool
    75   Discoverable() const
    76   {
    77     return mDiscoverable;
    78   }
    80   uint32_t
    81   DiscoverableTimeout() const
    82   {
    83     return mDiscoverableTimeout;
    84   }
    86   void GetDevices(JSContext* aContext, JS::MutableHandle<JS::Value> aDevices,
    87                   ErrorResult& aRv);
    88   void GetUuids(JSContext* aContext, JS::MutableHandle<JS::Value> aUuids,
    89                 ErrorResult& aRv);
    91   already_AddRefed<mozilla::dom::DOMRequest>
    92     SetName(const nsAString& aName, ErrorResult& aRv);
    94   already_AddRefed<DOMRequest>
    95     SetDiscoverable(bool aDiscoverable, ErrorResult& aRv);
    96   already_AddRefed<DOMRequest>
    97     SetDiscoverableTimeout(uint32_t aTimeout, ErrorResult& aRv);
    98   already_AddRefed<DOMRequest> StartDiscovery(ErrorResult& aRv);
    99   already_AddRefed<DOMRequest> StopDiscovery(ErrorResult& aRv);
   101   already_AddRefed<DOMRequest>
   102     Pair(const nsAString& aDeviceAddress, ErrorResult& aRv);
   103   already_AddRefed<DOMRequest>
   104     Unpair(const nsAString& aDeviceAddress, ErrorResult& aRv);
   105   already_AddRefed<DOMRequest>
   106     GetPairedDevices(ErrorResult& aRv);
   107   already_AddRefed<DOMRequest>
   108     SetPinCode(const nsAString& aDeviceAddress, const nsAString& aPinCode,
   109                ErrorResult& aRv);
   110   already_AddRefed<DOMRequest>
   111     SetPasskey(const nsAString& aDeviceAddress, uint32_t aPasskey,
   112                ErrorResult& aRv);
   113   already_AddRefed<DOMRequest>
   114     SetPairingConfirmation(const nsAString& aDeviceAddress, bool aConfirmation,
   115                            ErrorResult& aRv);
   116   already_AddRefed<DOMRequest>
   117     SetAuthorization(const nsAString& aDeviceAddress, bool aAllow,
   118                      ErrorResult& aRv);
   120   already_AddRefed<DOMRequest>
   121     Connect(BluetoothDevice& aDevice,
   122             const Optional<short unsigned int>& aServiceUuid, ErrorResult& aRv);
   123   already_AddRefed<DOMRequest>
   124     Disconnect(BluetoothDevice& aDevice,
   125                const Optional<short unsigned int>& aServiceUuid,
   126                ErrorResult& aRv);
   127   already_AddRefed<DOMRequest>
   128     GetConnectedDevices(uint16_t aServiceUuid, ErrorResult& aRv);
   130   already_AddRefed<DOMRequest>
   131     SendFile(const nsAString& aDeviceAddress, nsIDOMBlob* aBlob,
   132              ErrorResult& aRv);
   133   already_AddRefed<DOMRequest>
   134     StopSendingFile(const nsAString& aDeviceAddress, ErrorResult& aRv);
   135   already_AddRefed<DOMRequest>
   136     ConfirmReceivingFile(const nsAString& aDeviceAddress, bool aConfirmation,
   137                          ErrorResult& aRv);
   139   already_AddRefed<DOMRequest> ConnectSco(ErrorResult& aRv);
   140   already_AddRefed<DOMRequest> DisconnectSco(ErrorResult& aRv);
   141   already_AddRefed<DOMRequest> IsScoConnected(ErrorResult& aRv);
   143   already_AddRefed<DOMRequest> AnswerWaitingCall(ErrorResult& aRv);
   144   already_AddRefed<DOMRequest> IgnoreWaitingCall(ErrorResult& aRv);
   145   already_AddRefed<DOMRequest> ToggleCalls(ErrorResult& aRv);
   147   already_AddRefed<DOMRequest>
   148     SendMediaMetaData(const MediaMetaData& aMediaMetaData, ErrorResult& aRv);
   149   already_AddRefed<DOMRequest>
   150     SendMediaPlayStatus(const MediaPlayStatus& aMediaPlayStatus, ErrorResult& aRv);
   152   IMPL_EVENT_HANDLER(devicefound);
   153   IMPL_EVENT_HANDLER(a2dpstatuschanged);
   154   IMPL_EVENT_HANDLER(hfpstatuschanged);
   155   IMPL_EVENT_HANDLER(pairedstatuschanged);
   156   IMPL_EVENT_HANDLER(requestmediaplaystatus);
   157   IMPL_EVENT_HANDLER(scostatuschanged);
   159   nsPIDOMWindow* GetParentObject() const
   160   {
   161      return GetOwner();
   162   }
   164   virtual JSObject*
   165     WrapObject(JSContext* aCx) MOZ_OVERRIDE;
   167 private:
   168   BluetoothAdapter(nsPIDOMWindow* aOwner, const BluetoothValue& aValue);
   169   ~BluetoothAdapter();
   171   void Root();
   173   already_AddRefed<mozilla::dom::DOMRequest>
   174     StartStopDiscovery(bool aStart, ErrorResult& aRv);
   175   already_AddRefed<mozilla::dom::DOMRequest>
   176     PairUnpair(bool aPair, const nsAString& aDeviceAddress, ErrorResult& aRv);
   178   JS::Heap<JSObject*> mJsUuids;
   179   JS::Heap<JSObject*> mJsDeviceAddresses;
   180   nsString mAddress;
   181   nsString mName;
   182   bool mDiscoverable;
   183   bool mDiscovering;
   184   bool mPairable;
   185   bool mPowered;
   186   uint32_t mPairableTimeout;
   187   uint32_t mDiscoverableTimeout;
   188   uint32_t mClass;
   189   nsTArray<nsString> mDeviceAddresses;
   190   nsTArray<nsString> mUuids;
   191   bool mIsRooted;
   192 };
   194 END_BLUETOOTH_NAMESPACE
   196 #endif

mercurial