Merge branch 'cupcake'
This commit is contained in:
commit
37156b8db0
2 changed files with 11 additions and 16 deletions
|
@ -17,6 +17,8 @@
|
|||
#ifndef ANDROID_OVERLAY_INTERFACE_H
|
||||
#define ANDROID_OVERLAY_INTERFACE_H
|
||||
|
||||
#include <cutils/native_handle.h>
|
||||
|
||||
#include <hardware/hardware.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
@ -102,12 +104,7 @@ enum {
|
|||
/*****************************************************************************/
|
||||
|
||||
/* opaque reference to an Overlay kernel object */
|
||||
typedef struct {
|
||||
int numFds;
|
||||
int fds[4];
|
||||
int numInts;
|
||||
int data[0];
|
||||
} overlay_handle_t;
|
||||
typedef const native_handle* overlay_handle_t;
|
||||
|
||||
typedef struct overlay_t {
|
||||
uint32_t w;
|
||||
|
@ -118,7 +115,7 @@ typedef struct overlay_t {
|
|||
uint32_t reserved[3];
|
||||
/* returns a reference to this overlay's handle (the caller doesn't
|
||||
* take ownership) */
|
||||
overlay_handle_t const* (*getHandleRef)(struct overlay_t* overlay);
|
||||
overlay_handle_t (*getHandleRef)(struct overlay_t* overlay);
|
||||
uint32_t reserved_procs[7];
|
||||
} overlay_t;
|
||||
|
||||
|
@ -183,7 +180,7 @@ struct overlay_data_device_t {
|
|||
/* initialize the overlay from the given handle. this associates this
|
||||
* overlay data module to its control module */
|
||||
int (*initialize)(struct overlay_data_device_t *dev,
|
||||
overlay_handle_t const* handle);
|
||||
overlay_handle_t handle);
|
||||
|
||||
/* blocks until an overlay buffer is available and return that buffer. */
|
||||
int (*dequeueBuffer)(struct overlay_data_device_t *dev,
|
||||
|
|
|
@ -60,17 +60,14 @@ const struct overlay_module_t HAL_MODULE_INFO_SYM = {
|
|||
|
||||
/*
|
||||
* This is the overlay_t object, it is returned to the user and represents
|
||||
* an overlay. here we use a subclass, where we can store our own state.
|
||||
* Notice the use of "overlay_handle_t", which is an "opaque" marshallable
|
||||
* handle, it can contains any number of ints and up to 4 filedescriptors.
|
||||
* In this example we store no fd and 2 ints.
|
||||
* an overlay.
|
||||
* This handles will be passed across processes and possibly given to other
|
||||
* HAL modules (for instance video decode modules).
|
||||
*/
|
||||
|
||||
class overlay_object : public overlay_t {
|
||||
|
||||
struct handle_t : public overlay_handle_t {
|
||||
struct handle_t : public native_handle {
|
||||
/* add the data fields we need here, for instance: */
|
||||
int width;
|
||||
int height;
|
||||
|
@ -78,7 +75,7 @@ class overlay_object : public overlay_t {
|
|||
|
||||
handle_t mHandle;
|
||||
|
||||
static overlay_handle_t const* getHandleRef(struct overlay_t* overlay) {
|
||||
static overlay_handle_t getHandleRef(struct overlay_t* overlay) {
|
||||
/* returns a reference to the handle, caller doesn't take ownership */
|
||||
return &(static_cast<overlay_object *>(overlay)->mHandle);
|
||||
}
|
||||
|
@ -86,6 +83,7 @@ class overlay_object : public overlay_t {
|
|||
public:
|
||||
overlay_object() {
|
||||
this->overlay_t::getHandleRef = getHandleRef;
|
||||
mHandle.version = sizeof(native_handle);
|
||||
mHandle.numFds = 0;
|
||||
mHandle.numInts = 2; // extra ints we have in our handle
|
||||
}
|
||||
|
@ -213,7 +211,7 @@ static int overlay_control_close(struct hw_device_t *dev)
|
|||
// ****************************************************************************
|
||||
|
||||
int overlay_initialize(struct overlay_data_device_t *dev,
|
||||
overlay_handle_t const* handle)
|
||||
overlay_handle_t handle)
|
||||
{
|
||||
/*
|
||||
* overlay_handle_t should contain all the information to "inflate" this
|
||||
|
@ -230,7 +228,7 @@ int overlay_initialize(struct overlay_data_device_t *dev,
|
|||
}
|
||||
|
||||
int overlay_dequeueBuffer(struct overlay_data_device_t *dev,
|
||||
overlay_buffer_t buf)
|
||||
overlay_buffer_t* buf)
|
||||
{
|
||||
/* blocks until a buffer is available and return an opaque structure
|
||||
* representing this buffer.
|
||||
|
|
Loading…
Reference in a new issue