diff options
Diffstat (limited to 'hal/Hal.cpp')
-rw-r--r-- | hal/Hal.cpp | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/hal/Hal.cpp b/hal/Hal.cpp index 8ac9e6847..16201a2d8 100644 --- a/hal/Hal.cpp +++ b/hal/Hal.cpp @@ -754,96 +754,6 @@ UnlockScreenOrientation() PROXY_IF_SANDBOXED(UnlockScreenOrientation()); } -void -EnableSwitchNotifications(SwitchDevice aDevice) { - AssertMainThread(); - PROXY_IF_SANDBOXED(EnableSwitchNotifications(aDevice)); -} - -void -DisableSwitchNotifications(SwitchDevice aDevice) { - AssertMainThread(); - PROXY_IF_SANDBOXED(DisableSwitchNotifications(aDevice)); -} - -SwitchState GetCurrentSwitchState(SwitchDevice aDevice) -{ - AssertMainThread(); - RETURN_PROXY_IF_SANDBOXED(GetCurrentSwitchState(aDevice), SWITCH_STATE_UNKNOWN); -} - -void NotifySwitchStateFromInputDevice(SwitchDevice aDevice, SwitchState aState) -{ - AssertMainThread(); - PROXY_IF_SANDBOXED(NotifySwitchStateFromInputDevice(aDevice, aState)); -} - -typedef mozilla::ObserverList<SwitchEvent> SwitchObserverList; - -static SwitchObserverList *sSwitchObserverLists = nullptr; - -static SwitchObserverList& -GetSwitchObserverList(SwitchDevice aDevice) { - MOZ_ASSERT(0 <= aDevice && aDevice < NUM_SWITCH_DEVICE); - if (sSwitchObserverLists == nullptr) { - sSwitchObserverLists = new SwitchObserverList[NUM_SWITCH_DEVICE]; - } - return sSwitchObserverLists[aDevice]; -} - -static void -ReleaseObserversIfNeeded() { - for (int i = 0; i < NUM_SWITCH_DEVICE; i++) { - if (sSwitchObserverLists[i].Length() != 0) - return; - } - - //The length of every list is 0, no observer in the list. - delete [] sSwitchObserverLists; - sSwitchObserverLists = nullptr; -} - -void -RegisterSwitchObserver(SwitchDevice aDevice, SwitchObserver *aObserver) -{ - AssertMainThread(); - SwitchObserverList& observer = GetSwitchObserverList(aDevice); - observer.AddObserver(aObserver); - if (observer.Length() == 1) { - EnableSwitchNotifications(aDevice); - } -} - -void -UnregisterSwitchObserver(SwitchDevice aDevice, SwitchObserver *aObserver) -{ - AssertMainThread(); - - if (!sSwitchObserverLists) { - return; - } - - SwitchObserverList& observer = GetSwitchObserverList(aDevice); - if (!observer.RemoveObserver(aObserver) || observer.Length() > 0) { - return; - } - - DisableSwitchNotifications(aDevice); - ReleaseObserversIfNeeded(); -} - -void -NotifySwitchChange(const SwitchEvent& aEvent) -{ - // When callback this notification, main thread may call unregister function - // first. We should check if this pointer is valid. - if (!sSwitchObserverLists) - return; - - SwitchObserverList& observer = GetSwitchObserverList(aEvent.device()); - observer.Broadcast(aEvent); -} - static AlarmObserver* sAlarmObserver; bool |