mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Merge mozilla-central and b2g-inbound
This commit is contained in:
commit
4931f8d4b2
@ -1,4 +1,4 @@
|
||||
{
|
||||
"revision": "2e7106da13e91ea119801a50a39c9e7ebb1d912e",
|
||||
"revision": "676a2478d117fa32da2b13284283ff370713054a",
|
||||
"repo_path": "/integration/gaia-central"
|
||||
}
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include "mozilla/dom/bluetooth/BluetoothTypes.h"
|
||||
#include "mozilla/Services.h"
|
||||
#include "mozilla/StaticPtr.h"
|
||||
#include "nsIAudioManager.h"
|
||||
#include "nsIObserverService.h"
|
||||
#include "MainThreadUtils.h"
|
||||
|
||||
|
@ -43,17 +43,28 @@
|
||||
#endif
|
||||
|
||||
#if defined(MOZ_B2G_BT)
|
||||
# if defined(MOZ_BLUETOOTH_GONK)
|
||||
#ifdef MOZ_B2G_BT_BLUEZ
|
||||
#if defined(MOZ_B2G_BT_BLUEZ)
|
||||
/**
|
||||
* B2G blueZ:
|
||||
* MOZ_B2G_BT and MOZ_B2G_BT_BLUEZ are both defined.
|
||||
*/
|
||||
#include "BluetoothGonkService.h"
|
||||
#else
|
||||
#elif defined(MOZ_B2G_BT_BLUEDROID)
|
||||
/**
|
||||
* B2G bluedroid:
|
||||
* MOZ_B2G_BT and MOZ_B2G_BT_BLUEDROID are both defined;
|
||||
* MOZ_B2G_BLUEZ is not defined.
|
||||
*/
|
||||
#include "BluetoothServiceBluedroid.h"
|
||||
#endif
|
||||
# elif defined(MOZ_BLUETOOTH_DBUS)
|
||||
# include "BluetoothDBusService.h"
|
||||
# else
|
||||
# error No_suitable_backend_for_bluetooth!
|
||||
# endif
|
||||
#elif defined(MOZ_BLUETOOTH_DBUS)
|
||||
/**
|
||||
* Desktop bluetooth:
|
||||
* MOZ_B2G_BT is not defined; MOZ_BLUETOOTH_DBUS is defined.
|
||||
*/
|
||||
#include "BluetoothDBusService.h"
|
||||
#else
|
||||
#error No backend
|
||||
#endif
|
||||
|
||||
#define MOZSETTINGS_CHANGED_ID "mozsettings-changed"
|
||||
@ -305,19 +316,16 @@ BluetoothService::Create()
|
||||
if (!IsMainProcess()) {
|
||||
return BluetoothServiceChildProcess::Create();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MOZ_BLUETOOTH_GONK)
|
||||
#ifdef MOZ_B2G_BT_BLUEDROID
|
||||
return new BluetoothServiceBluedroid();
|
||||
#else
|
||||
#if defined(MOZ_B2G_BT_BLUEZ)
|
||||
return new BluetoothGonkService();
|
||||
#elif defined(MOZ_B2G_BT_BLUEDROID)
|
||||
return new BluetoothServiceBluedroid();
|
||||
#endif
|
||||
#elif defined(MOZ_BLUETOOTH_DBUS)
|
||||
#ifdef MOZ_B2G_BT_BLUEZ
|
||||
return new BluetoothDBusService();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
BT_WARNING("No platform support for bluetooth!");
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -16,36 +16,28 @@ VPATH += $(srcdir)/ipc
|
||||
|
||||
ifneq (,$(MOZ_B2G_BT))
|
||||
|
||||
|
||||
ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
|
||||
VPATH += \
|
||||
$(srcdir)/linux \
|
||||
$(srcdir)/gonk \
|
||||
$(NULL)
|
||||
ifdef MOZ_B2G_BT_BLUEZ
|
||||
LOCAL_INCLUDES += $(MOZ_DBUS_CFLAGS)
|
||||
DEFINES += -DMOZ_BLUETOOTH_GONK
|
||||
DEFINES += -DMOZ_B2G_BT_BLUEZ
|
||||
else
|
||||
ifdef MOZ_B2G_BT_BLUEDROID
|
||||
DEFINES += -DMOZ_B2G_BT_BLUEDROID
|
||||
endif #MOZ_B2G_BT_BLUEDROID
|
||||
endif #MOZ_B2G_BT_BLUEZ
|
||||
else
|
||||
ifdef MOZ_ENABLE_DBUS
|
||||
VPATH += $(srcdir)/linux
|
||||
LOCAL_INCLUDES += $(MOZ_DBUS_CFLAGS)
|
||||
CFLAGS += $(MOZ_DBUS_GLIB_CFLAGS)
|
||||
CXXFLAGS += $(MOZ_DBUS_GLIB_CFLAGS) -DHAVE_PTHREADS
|
||||
DEFINES += -DMOZ_BLUETOOTH_DBUS
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef MOZ_B2G_BT_BLUEZ
|
||||
DEFINES += -DMOZ_B2G_BT_BLUEZ
|
||||
endif
|
||||
|
||||
ifdef MOZ_B2G_BT_BLUEDROID
|
||||
DEFINES += -DMOZ_B2G_BT_BLUEDROID
|
||||
endif
|
||||
endif #MOZ_ENABLE_DBUS
|
||||
endif #MOZ_WIDGET_TOOLKIT
|
||||
|
||||
# Add VPATH to LOCAL_INCLUDES so we are going to include the correct backend
|
||||
# subdirectory.
|
||||
LOCAL_INCLUDES += $(VPATH:%=-I%)
|
||||
|
||||
endif # MOZ_B2G_BT
|
||||
endif #MOZ_B2G_BT
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include "mozilla/Services.h"
|
||||
#include "mozilla/StaticPtr.h"
|
||||
#include "nsContentUtils.h"
|
||||
#include "nsIAudioManager.h"
|
||||
#include "nsIObserverService.h"
|
||||
#include "nsISettingsService.h"
|
||||
#include "nsServiceManagerUtils.h"
|
1897
dom/bluetooth/bluez/BluetoothHfpManager.cpp
Normal file
1897
dom/bluetooth/bluez/BluetoothHfpManager.cpp
Normal file
File diff suppressed because it is too large
Load Diff
220
dom/bluetooth/bluez/BluetoothHfpManager.h
Normal file
220
dom/bluetooth/bluez/BluetoothHfpManager.h
Normal file
@ -0,0 +1,220 @@
|
||||
/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
|
||||
/* vim: set ts=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_bluetoothhfpmanager_h__
|
||||
#define mozilla_dom_bluetooth_bluetoothhfpmanager_h__
|
||||
|
||||
#include "BluetoothCommon.h"
|
||||
#include "BluetoothProfileManagerBase.h"
|
||||
#ifdef MOZ_B2G_RIL
|
||||
#include "BluetoothRilListener.h"
|
||||
#endif
|
||||
#include "BluetoothSocketObserver.h"
|
||||
#include "mozilla/ipc/UnixSocket.h"
|
||||
#include "mozilla/Hal.h"
|
||||
|
||||
BEGIN_BLUETOOTH_NAMESPACE
|
||||
|
||||
class BluetoothReplyRunnable;
|
||||
class BluetoothSocket;
|
||||
|
||||
#ifdef MOZ_B2G_RIL
|
||||
class Call;
|
||||
|
||||
/**
|
||||
* These costants are defined in 4.33.2 "AT Capabilities Re-Used from GSM 07.07
|
||||
* and 3GPP 27.007" in Bluetooth hands-free profile 1.6
|
||||
*/
|
||||
enum BluetoothCmeError {
|
||||
AG_FAILURE = 0,
|
||||
NO_CONNECTION_TO_PHONE = 1,
|
||||
OPERATION_NOT_ALLOWED = 3,
|
||||
OPERATION_NOT_SUPPORTED = 4,
|
||||
PIN_REQUIRED = 5,
|
||||
SIM_NOT_INSERTED = 10,
|
||||
SIM_PIN_REQUIRED = 11,
|
||||
SIM_PUK_REQUIRED = 12,
|
||||
SIM_FAILURE = 13,
|
||||
SIM_BUSY = 14,
|
||||
INCORRECT_PASSWORD = 16,
|
||||
SIM_PIN2_REQUIRED = 17,
|
||||
SIM_PUK2_REQUIRED = 18,
|
||||
MEMORY_FULL = 20,
|
||||
INVALID_INDEX = 21,
|
||||
MEMORY_FAILURE = 23,
|
||||
TEXT_STRING_TOO_LONG = 24,
|
||||
INVALID_CHARACTERS_IN_TEXT_STRING = 25,
|
||||
DIAL_STRING_TOO_LONG = 26,
|
||||
INVALID_CHARACTERS_IN_DIAL_STRING = 27,
|
||||
NO_NETWORK_SERVICE = 30,
|
||||
NETWORK_TIMEOUT = 31,
|
||||
NETWORK_NOT_ALLOWED = 32
|
||||
};
|
||||
|
||||
enum PhoneType {
|
||||
NONE, // no connection
|
||||
GSM,
|
||||
CDMA
|
||||
};
|
||||
|
||||
class Call {
|
||||
public:
|
||||
Call();
|
||||
void Reset();
|
||||
bool IsActive();
|
||||
|
||||
uint16_t mState;
|
||||
bool mDirection; // true: incoming call; false: outgoing call
|
||||
nsString mNumber;
|
||||
int mType;
|
||||
};
|
||||
#endif // MOZ_B2G_RIL
|
||||
|
||||
class BluetoothHfpManager : public BluetoothSocketObserver
|
||||
, public BluetoothProfileManagerBase
|
||||
, public BatteryObserver
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIOBSERVER
|
||||
BT_DECL_PROFILE_MGR_BASE
|
||||
virtual void GetName(nsACString& aName)
|
||||
{
|
||||
aName.AssignLiteral("HFP/HSP");
|
||||
}
|
||||
|
||||
static BluetoothHfpManager* Get();
|
||||
~BluetoothHfpManager();
|
||||
|
||||
// The following functions are inherited from BluetoothSocketObserver
|
||||
virtual void ReceiveSocketData(
|
||||
BluetoothSocket* aSocket,
|
||||
nsAutoPtr<mozilla::ipc::UnixSocketRawData>& aMessage) MOZ_OVERRIDE;
|
||||
virtual void OnSocketConnectSuccess(BluetoothSocket* aSocket) MOZ_OVERRIDE;
|
||||
virtual void OnSocketConnectError(BluetoothSocket* aSocket) MOZ_OVERRIDE;
|
||||
virtual void OnSocketDisconnect(BluetoothSocket* aSocket) MOZ_OVERRIDE;
|
||||
|
||||
bool Listen();
|
||||
bool ConnectSco(BluetoothReplyRunnable* aRunnable = nullptr);
|
||||
bool DisconnectSco();
|
||||
bool ListenSco();
|
||||
bool IsScoConnected();
|
||||
|
||||
#ifdef MOZ_B2G_RIL
|
||||
/**
|
||||
* @param aSend A boolean indicates whether we need to notify headset or not
|
||||
*/
|
||||
void HandleCallStateChanged(uint32_t aCallIndex, uint16_t aCallState,
|
||||
const nsAString& aError, const nsAString& aNumber,
|
||||
const bool aIsOutgoing, bool aSend);
|
||||
void HandleIccInfoChanged();
|
||||
void HandleVoiceConnectionChanged();
|
||||
|
||||
// CDMA-specific functions
|
||||
void UpdateSecondNumber(const nsAString& aNumber);
|
||||
void AnswerWaitingCall();
|
||||
void IgnoreWaitingCall();
|
||||
void ToggleCalls();
|
||||
#endif
|
||||
|
||||
private:
|
||||
class CloseScoTask;
|
||||
class GetVolumeTask;
|
||||
#ifdef MOZ_B2G_RIL
|
||||
class RespondToBLDNTask;
|
||||
class SendRingIndicatorTask;
|
||||
#endif
|
||||
|
||||
friend class CloseScoTask;
|
||||
friend class GetVolumeTask;
|
||||
#ifdef MOZ_B2G_RIL
|
||||
friend class RespondToBLDNTask;
|
||||
friend class SendRingIndicatorTask;
|
||||
#endif
|
||||
friend class BluetoothHfpManagerObserver;
|
||||
|
||||
BluetoothHfpManager();
|
||||
void HandleShutdown();
|
||||
void HandleVolumeChanged(const nsAString& aData);
|
||||
|
||||
bool Init();
|
||||
void Notify(const hal::BatteryInformation& aBatteryInfo);
|
||||
void Reset();
|
||||
#ifdef MOZ_B2G_RIL
|
||||
void ResetCallArray();
|
||||
uint32_t FindFirstCall(uint16_t aState);
|
||||
uint32_t GetNumberOfCalls(uint16_t aState);
|
||||
PhoneType GetPhoneType(const nsAString& aType);
|
||||
#endif
|
||||
|
||||
void NotifyConnectionStatusChanged(const nsAString& aType);
|
||||
void NotifyDialer(const nsAString& aCommand);
|
||||
|
||||
#ifdef MOZ_B2G_RIL
|
||||
void SendCCWA(const nsAString& aNumber, int aType);
|
||||
bool SendCLCC(const Call& aCall, int aIndex);
|
||||
#endif
|
||||
bool SendCommand(const char* aCommand, uint32_t aValue = 0);
|
||||
bool SendLine(const char* aMessage);
|
||||
#ifdef MOZ_B2G_RIL
|
||||
void UpdateCIND(uint8_t aType, uint8_t aValue, bool aSend = true);
|
||||
#endif
|
||||
void OnScoConnectSuccess();
|
||||
void OnScoConnectError();
|
||||
void OnScoDisconnect();
|
||||
|
||||
int mCurrentVgs;
|
||||
int mCurrentVgm;
|
||||
#ifdef MOZ_B2G_RIL
|
||||
bool mBSIR;
|
||||
bool mCCWA;
|
||||
bool mCLIP;
|
||||
#endif
|
||||
bool mCMEE;
|
||||
bool mCMER;
|
||||
#ifdef MOZ_B2G_RIL
|
||||
bool mFirstCKPD;
|
||||
int mNetworkSelectionMode;
|
||||
PhoneType mPhoneType;
|
||||
#endif
|
||||
bool mReceiveVgsFlag;
|
||||
#ifdef MOZ_B2G_RIL
|
||||
bool mDialingRequestProcessed;
|
||||
#endif
|
||||
nsString mDeviceAddress;
|
||||
#ifdef MOZ_B2G_RIL
|
||||
nsString mMsisdn;
|
||||
nsString mOperatorName;
|
||||
|
||||
nsTArray<Call> mCurrentCallArray;
|
||||
nsAutoPtr<BluetoothRilListener> mListener;
|
||||
#endif
|
||||
nsRefPtr<BluetoothProfileController> mController;
|
||||
nsRefPtr<BluetoothReplyRunnable> mScoRunnable;
|
||||
|
||||
// If a connection has been established, mSocket will be the socket
|
||||
// communicating with the remote socket. We maintain the invariant that if
|
||||
// mSocket is non-null, mHandsfreeSocket and mHeadsetSocket must be null (and
|
||||
// vice versa).
|
||||
nsRefPtr<BluetoothSocket> mSocket;
|
||||
|
||||
// Server sockets. Once an inbound connection is established, it will hand
|
||||
// over the ownership to mSocket, and get a new server socket while Listen()
|
||||
// is called.
|
||||
nsRefPtr<BluetoothSocket> mHandsfreeSocket;
|
||||
nsRefPtr<BluetoothSocket> mHeadsetSocket;
|
||||
nsRefPtr<BluetoothSocket> mScoSocket;
|
||||
SocketConnectionStatus mScoSocketStatus;
|
||||
|
||||
#ifdef MOZ_B2G_RIL
|
||||
// CDMA-specific variable
|
||||
Call mCdmaSecondCall;
|
||||
#endif
|
||||
};
|
||||
|
||||
END_BLUETOOTH_NAMESPACE
|
||||
|
||||
#endif
|
14
dom/bluetooth/interfaces/moz.build
Normal file
14
dom/bluetooth/interfaces/moz.build
Normal file
@ -0,0 +1,14 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
if CONFIG['MOZ_B2G_BT']:
|
||||
XPIDL_SOURCES += [
|
||||
'nsIDOMBluetoothDevice.idl',
|
||||
'nsIDOMBluetoothDeviceEvent.idl',
|
||||
'nsIDOMBluetoothStatusChangedEvent.idl',
|
||||
]
|
||||
XPIDL_MODULE = 'dom_bluetooth'
|
||||
|
@ -1,35 +1,20 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# Copyright 2013 Mozilla Foundation and Mozilla contributors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# 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/.
|
||||
|
||||
if CONFIG['MOZ_B2G_BT']:
|
||||
PARALLEL_DIRS += ['interfaces']
|
||||
|
||||
LIBXUL_LIBRARY = True
|
||||
MODULE = 'dom'
|
||||
LIBRARY_NAME = 'dombluetooth_s'
|
||||
XPIDL_MODULE = 'dom_bluetooth'
|
||||
XPIDL_SOURCES += [
|
||||
'nsIDOMBluetoothDevice.idl',
|
||||
'nsIDOMBluetoothDeviceEvent.idl',
|
||||
'nsIDOMBluetoothStatusChangedEvent.idl',
|
||||
]
|
||||
|
||||
SOURCES += [
|
||||
'BluetoothA2dpManager.cpp',
|
||||
'BluetoothAdapter.cpp',
|
||||
'BluetoothDevice.cpp',
|
||||
'BluetoothHfpManager.cpp',
|
||||
'BluetoothHidManager.cpp',
|
||||
'BluetoothManager.cpp',
|
||||
'BluetoothOppManager.cpp',
|
||||
@ -55,18 +40,33 @@ if CONFIG['MOZ_B2G_BT']:
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
if CONFIG['MOZ_B2G_BT_BLUEZ']:
|
||||
SOURCES += [
|
||||
'gonk/BluetoothGonkService.cpp',
|
||||
'linux/BluetoothDBusService.cpp',
|
||||
'bluez/BluetoothHfpManager.cpp',
|
||||
'bluez/gonk/BluetoothGonkService.cpp',
|
||||
'bluez/linux/BluetoothDBusService.cpp',
|
||||
]
|
||||
if CONFIG['MOZ_B2G_BT_BLUEDROID']:
|
||||
LOCAL_INCLUDES += [
|
||||
'bluez',
|
||||
'bluez/gonk',
|
||||
'bluez/linux',
|
||||
]
|
||||
elif CONFIG['MOZ_B2G_BT_BLUEDROID']:
|
||||
SOURCES += [
|
||||
'BluetoothServiceBluedroid.cpp',
|
||||
'bluedroid/BluetoothHfpManager.cpp',
|
||||
'bluedroid/gonk/BluetoothServiceBluedroid.cpp',
|
||||
]
|
||||
else:
|
||||
if CONFIG['MOZ_ENABLE_DBUS']:
|
||||
SOURCES += [
|
||||
'linux/BluetoothDBusService.cpp',
|
||||
LOCAL_INCLUDES += [
|
||||
'bluedroid',
|
||||
'bluedroid/gonk',
|
||||
]
|
||||
elif CONFIG['MOZ_ENABLE_DBUS']:
|
||||
SOURCES += [
|
||||
'bluez/BluetoothHfpManager.cpp',
|
||||
'bluez/linux/BluetoothDBusService.cpp',
|
||||
]
|
||||
LOCAL_INCLUDES += [
|
||||
'bluez',
|
||||
'bluez/linux',
|
||||
]
|
||||
|
||||
EXPORTS.mozilla.dom.bluetooth.ipc += [
|
||||
'ipc/BluetoothMessageUtils.h',
|
||||
|
@ -102,6 +102,16 @@ if CONFIG['MOZ_NFC']:
|
||||
'nfc_worker.js',
|
||||
]
|
||||
|
||||
# include different BluetoothHfpManager.h under dom/bluetooth/
|
||||
if CONFIG['MOZ_B2G_BT_BLUEZ']:
|
||||
LOCAL_INCLUDES += [
|
||||
'/dom/bluetooth/bluez',
|
||||
]
|
||||
elif CONFIG['MOZ_B2G_BT_BLUEDROID']:
|
||||
LOCAL_INCLUDES += [
|
||||
'/dom/bluetooth/bluedroid',
|
||||
]
|
||||
|
||||
FAIL_ON_WARNINGS = True
|
||||
|
||||
LIBXUL_LIBRARY = True
|
||||
|
Loading…
Reference in New Issue
Block a user