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

Commit 0b024758 authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android Git Automerger
Browse files

am e24a60aa: Merge "First stab at attaching native event dispatching." into gingerbread

Merge commit 'e24a60aa4670fb835772b23ff665bb368fa65e30' into gingerbread-plus-aosp

* commit 'e24a60aa4670fb835772b23ff665bb368fa65e30':
  First stab at attaching native event dispatching.
parents 32484349 64b74fb3
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -40,6 +40,11 @@ enum {
 */
 */
#define MAX_POINTERS 10
#define MAX_POINTERS 10


/*
 * Declare a concrete type for the NDK's input event forward declaration.
 */
struct input_event_t { };

namespace android {
namespace android {


/*
/*
@@ -128,8 +133,6 @@ struct PointerCoords {
/*
/*
 * Input events.
 * Input events.
 */
 */
struct input_event_t { };

class InputEvent : public input_event_t {
class InputEvent : public input_event_t {
public:
public:
    virtual ~InputEvent() { }
    virtual ~InputEvent() { }
+20 −0
Original line number Original line Diff line number Diff line
@@ -330,4 +330,24 @@ private:


} // namespace android
} // namespace android


/*
 * NDK input queue API.
 */
struct input_queue_t {
public:
    /* Creates a consumer associated with an input channel. */
    explicit input_queue_t(const android::sp<android::InputChannel>& channel);

    /* Destroys the consumer and releases its input channel. */
    ~input_queue_t();

    inline android::InputConsumer& getConsumer() { return mConsumer; }
    
    android::status_t consume(android::InputEvent** event);
    
private:
    android::InputConsumer mConsumer;
    android::PreallocatedInputEventFactory mInputEventFactory;
};

#endif // _UI_INPUT_TRANSPORT_H
#endif // _UI_INPUT_TRANSPORT_H
+0 −163
Original line number Original line Diff line number Diff line
@@ -88,166 +88,3 @@ void MotionEvent::offsetLocation(float xOffset, float yOffset) {
}
}


} // namespace android
} // namespace android

// NDK APIs

using android::InputEvent;
using android::KeyEvent;
using android::MotionEvent;

int32_t input_event_get_type(const input_event_t* event) {
    return reinterpret_cast<const InputEvent*>(event)->getType();
}

int32_t input_event_get_device_id(const input_event_t* event) {
    return reinterpret_cast<const InputEvent*>(event)->getDeviceId();
}

int32_t input_event_get_nature(const input_event_t* event) {
    return reinterpret_cast<const InputEvent*>(event)->getNature();
}

int32_t key_event_get_action(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getAction();
}

int32_t key_event_get_flags(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getFlags();
}

int32_t key_event_get_key_code(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getKeyCode();
}

int32_t key_event_get_scan_code(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getScanCode();
}

int32_t key_event_get_meta_state(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getMetaState();
}
int32_t key_event_get_repeat_count(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getRepeatCount();
}

int64_t key_event_get_down_time(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getDownTime();
}

int64_t key_event_get_event_time(const input_event_t* key_event) {
    return reinterpret_cast<const KeyEvent*>(key_event)->getEventTime();
}

int32_t motion_event_get_action(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getAction();
}

int32_t motion_event_get_meta_state(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getMetaState();
}

int32_t motion_event_get_edge_flags(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getEdgeFlags();
}

int64_t motion_event_get_down_time(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getDownTime();
}

int64_t motion_event_get_event_time(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getEventTime();
}

float motion_event_get_x_offset(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getXOffset();
}

float motion_event_get_y_offset(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getYOffset();
}

float motion_event_get_x_precision(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getXPrecision();
}

float motion_event_get_y_precision(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getYPrecision();
}

size_t motion_event_get_pointer_count(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getPointerCount();
}

int32_t motion_event_get_pointer_id(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getPointerId(pointer_index);
}

float motion_event_get_raw_x(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getRawX(pointer_index);
}

float motion_event_get_raw_y(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getRawY(pointer_index);
}

float motion_event_get_x(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getX(pointer_index);
}

float motion_event_get_y(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getY(pointer_index);
}

float motion_event_get_pressure(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getPressure(pointer_index);
}

float motion_event_get_size(const input_event_t* motion_event, size_t pointer_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getSize(pointer_index);
}

size_t motion_event_get_history_size(const input_event_t* motion_event) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistorySize();
}

int64_t motion_event_get_historical_event_time(input_event_t* motion_event,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalEventTime(
            history_index);
}

float motion_event_get_historical_raw_x(input_event_t* motion_event, size_t pointer_index,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalRawX(
            pointer_index, history_index);
}

float motion_event_get_historical_raw_y(input_event_t* motion_event, size_t pointer_index,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalRawY(
            pointer_index, history_index);
}

float motion_event_get_historical_x(input_event_t* motion_event, size_t pointer_index,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalX(
            pointer_index, history_index);
}

float motion_event_get_historical_y(input_event_t* motion_event, size_t pointer_index,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalY(
            pointer_index, history_index);
}

float motion_event_get_historical_pressure(input_event_t* motion_event, size_t pointer_index,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalPressure(
            pointer_index, history_index);
}

float motion_event_get_historical_size(input_event_t* motion_event, size_t pointer_index,
        size_t history_index) {
    return reinterpret_cast<const MotionEvent*>(motion_event)->getHistoricalSize(
            pointer_index, history_index);
}
+19 −0
Original line number Original line Diff line number Diff line
@@ -686,3 +686,22 @@ void InputConsumer::populateMotionEvent(MotionEvent* motionEvent) const {
}
}


} // namespace android
} // namespace android

// --- input_queue_t ---

using android::InputEvent;
using android::InputChannel;
using android::InputConsumer;
using android::sp;
using android::status_t;

input_queue_t::input_queue_t(const sp<InputChannel>& channel) :
        mConsumer(channel) {
}

input_queue_t::~input_queue_t() {
}

status_t input_queue_t::consume(InputEvent** event) {
    return mConsumer.consume(&mInputEventFactory, event);
}