allwinner_a64/android/hardware/aw/camera/BufferListManager.h
2018-08-08 17:00:29 +08:00

47 lines
889 B
C++

#ifndef __HAL_BUFFER_LIST_H__
#define __HAL_BUFFER_LIST_H__
#include <fcntl.h>
#include <cutils/list.h>
#include <utils/Mutex.h>
namespace android {
typedef struct BUFFER_NODE_t
{
struct listnode i_list;
int id;
void * data;
int size;
char priv[128];
int fd;
}buffer_node;
class BufferListManager {
public:
BufferListManager();
~BufferListManager();
// return buffer start address
buffer_node * allocBuffer(uint32_t id, uint32_t min_size);
void releaseBuffer(buffer_node * node);
bool isListEmpty();
buffer_node * pop();
void push(buffer_node * node);
int getItemCnt();
private:
Mutex mLock;
struct listnode mList;
int mItemCnt;
};
}; /* namespace android */
#endif /* __HAL_BUFFER_LIST_H__ */