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

Commit 656e83ff authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add C interface for virtual touchpad client."

parents d0b44732 de1cdaeb
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -94,6 +94,7 @@ cc_binary {


client_src = [
client_src = [
    "VirtualTouchpadClient.cpp",
    "VirtualTouchpadClient.cpp",
    "DvrVirtualTouchpadClient.cpp",
    "aidl/android/dvr/VirtualTouchpadService.aidl",
    "aidl/android/dvr/VirtualTouchpadService.aidl",
]
]


+45 −0
Original line number Original line Diff line number Diff line
#include "VirtualTouchpadClient.h"
#include "dvr/virtual_touchpad_client.h"

struct DvrVirtualTouchpad {};

#ifdef __cplusplus
extern "C" {
#endif

namespace {
android::dvr::VirtualTouchpad* FromC(DvrVirtualTouchpad* client) {
  return reinterpret_cast<android::dvr::VirtualTouchpad*>(client);
}
}  // namespace

DvrVirtualTouchpad* dvrVirtualTouchpadCreate() {
  return reinterpret_cast<DvrVirtualTouchpad*>(
      android::dvr::VirtualTouchpadClient::Create().release());
}

void dvrVirtualTouchpadDestroy(DvrVirtualTouchpad* client) {
  delete FromC(client);
}

int dvrVirtualTouchpadAttach(DvrVirtualTouchpad* client) {
  return FromC(client)->Attach();
}

int dvrVirtualTouchpadDetach(DvrVirtualTouchpad* client) {
  return FromC(client)->Detach();
}

int dvrVirtualTouchpadTouch(DvrVirtualTouchpad* client, int touchpad, float x,
                            float y, float pressure) {
  return FromC(client)->Touch(touchpad, x, y, pressure);
}

int dvrVirtualTouchpadButtonState(DvrVirtualTouchpad* client, int touchpad,
                                  int buttons) {
  return FromC(client)->ButtonState(touchpad, buttons);
}

#ifdef __cplusplus
}  // extern "C"
#endif
+2 −2
Original line number Original line Diff line number Diff line
@@ -72,8 +72,8 @@ class VirtualTouchpadClientImpl : public VirtualTouchpadClient {


}  // anonymous namespace
}  // anonymous namespace


sp<VirtualTouchpad> VirtualTouchpadClient::Create() {
std::unique_ptr<VirtualTouchpad> VirtualTouchpadClient::Create() {
  return new VirtualTouchpadClientImpl();
  return std::unique_ptr<VirtualTouchpad>(new VirtualTouchpadClientImpl());
}
}


}  // namespace dvr
}  // namespace dvr
+3 −3
Original line number Original line Diff line number Diff line
@@ -30,10 +30,10 @@ static constexpr int32_t kSlots = 2;


}  // anonymous namespace
}  // anonymous namespace


sp<VirtualTouchpad> VirtualTouchpadEvdev::Create() {
std::unique_ptr<VirtualTouchpad> VirtualTouchpadEvdev::Create() {
  VirtualTouchpadEvdev* const touchpad = new VirtualTouchpadEvdev();
  std::unique_ptr<VirtualTouchpadEvdev> touchpad(new VirtualTouchpadEvdev());
  touchpad->Reset();
  touchpad->Reset();
  return sp<VirtualTouchpad>(touchpad);
  return touchpad;
}
}


void VirtualTouchpadEvdev::Reset() {
void VirtualTouchpadEvdev::Reset() {
+2 −4
Original line number Original line Diff line number Diff line
#ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_EVDEV_H
#ifndef ANDROID_DVR_VIRTUAL_TOUCHPAD_EVDEV_H
#define ANDROID_DVR_VIRTUAL_TOUCHPAD_EVDEV_H
#define ANDROID_DVR_VIRTUAL_TOUCHPAD_EVDEV_H


#include <memory>

#include "EvdevInjector.h"
#include "EvdevInjector.h"
#include "VirtualTouchpad.h"
#include "VirtualTouchpad.h"


@@ -15,7 +13,8 @@ class EvdevInjector;
//
//
class VirtualTouchpadEvdev : public VirtualTouchpad {
class VirtualTouchpadEvdev : public VirtualTouchpad {
 public:
 public:
  static sp<VirtualTouchpad> Create();
  static std::unique_ptr<VirtualTouchpad> Create();
  ~VirtualTouchpadEvdev() override {}


  // VirtualTouchpad implementation:
  // VirtualTouchpad implementation:
  status_t Attach() override;
  status_t Attach() override;
@@ -28,7 +27,6 @@ class VirtualTouchpadEvdev : public VirtualTouchpad {
  static constexpr int kTouchpads = 2;
  static constexpr int kTouchpads = 2;


  VirtualTouchpadEvdev() {}
  VirtualTouchpadEvdev() {}
  ~VirtualTouchpadEvdev() override {}
  void Reset();
  void Reset();


  // Must be called only between construction (or Detach()) and Attach().
  // Must be called only between construction (or Detach()) and Attach().
Loading