SensorNotifier.h 922 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright (C) 2024 The LineageOS Project
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #pragma once
  7. #include <android/frameworks/sensorservice/1.0/ISensorManager.h>
  8. #include <thread>
  9. using android::sp;
  10. using android::frameworks::sensorservice::V1_0::IEventQueue;
  11. using android::frameworks::sensorservice::V1_0::IEventQueueCallback;
  12. using android::frameworks::sensorservice::V1_0::ISensorManager;
  13. using android::frameworks::sensorservice::V1_0::Result;
  14. class SensorNotifier {
  15. public:
  16. SensorNotifier(sp<ISensorManager> manager);
  17. virtual ~SensorNotifier();
  18. void activate();
  19. void deactivate();
  20. protected:
  21. Result initializeSensorQueue(std::string typeAsString, bool wakeup, sp<IEventQueueCallback>);
  22. virtual void notify() = 0;
  23. sp<IEventQueue> mQueue;
  24. int32_t mSensorHandle = -1;
  25. bool mActive = false;
  26. private:
  27. sp<ISensorManager> mManager;
  28. std::thread mThread;
  29. };