Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aee75f71 authored by Steve Kondik's avatar Steve Kondik
Browse files

libgui: Provide M-compatible sensors ABI

 * Enable with -DCOMPAT_SENSORS_M

Change-Id: Ia3a37539cec852c59a06c519641a30072749f8dc
parent 7406fdd4
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -54,7 +54,11 @@ public:
    static SensorManager& getInstanceForPackage(const String16& packageName);
    ~SensorManager();

#ifdef COMPAT_SENSORS_M
    ssize_t getSensorList(Sensor const* const** list) const;
#else
    ssize_t getSensorList(Sensor const* const** list);
#endif
    ssize_t getDynamicSensorList(Vector<Sensor>& list);
    Sensor const* getDefaultSensor(int type);
    sp<SensorEventQueue> createEventQueue(String8 packageName = String8(""), int mode = 0);
@@ -65,17 +69,29 @@ private:
    void sensorManagerDied();

    SensorManager(const String16& opPackageName);
#ifdef COMPAT_SENSORS_M
    status_t assertStateLocked() const;
#else
    status_t assertStateLocked();
#endif

private:
    static Mutex sLock;
    static std::map<String16, SensorManager*> sPackageInstances;

#ifdef COMPAT_SENSORS_M
    mutable Mutex mLock;
    mutable sp<ISensorServer> mSensorServer;
    mutable Sensor const** mSensorList;
    mutable Vector<Sensor> mSensors;
    mutable sp<IBinder::DeathRecipient> mDeathObserver;
#else
    Mutex mLock;
    sp<ISensorServer> mSensorServer;
    Sensor const** mSensorList;
    Vector<Sensor> mSensors;
    sp<IBinder::DeathRecipient> mDeathObserver;
#endif
    const String16 mOpPackageName;
};

+12 −2
Original line number Diff line number Diff line
@@ -106,7 +106,12 @@ void SensorManager::sensorManagerDied() {
    mSensors.clear();
}

status_t SensorManager::assertStateLocked() {
#ifdef COMPAT_SENSORS_M
status_t SensorManager::assertStateLocked() const
#else
status_t SensorManager::assertStateLocked()
#endif
{
    bool initSensorManager = false;
    if (mSensorServer == NULL) {
        initSensorManager = true;
@@ -161,7 +166,12 @@ status_t SensorManager::assertStateLocked() {
    return NO_ERROR;
}

ssize_t SensorManager::getSensorList(Sensor const* const** list) {
#ifdef COMPAT_SENSORS_M
ssize_t SensorManager::getSensorList(Sensor const* const** list) const
#else
ssize_t SensorManager::getSensorList(Sensor const* const** list)
#endif
{
    Mutex::Autolock _l(mLock);
    status_t err = assertStateLocked();
    if (err < 0) {