Clean SharedBufferList.h.
Signed-off-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
8290e8d3e5
commit
4232706dc8
@@ -13,28 +13,34 @@
|
|||||||
namespace BPrivate {
|
namespace BPrivate {
|
||||||
|
|
||||||
|
|
||||||
class SharedBufferList {
|
class SharedBufferList
|
||||||
|
{
|
||||||
public:
|
public:
|
||||||
static area_id Create(SharedBufferList** _list);
|
static area_id Create(SharedBufferList** _list);
|
||||||
static SharedBufferList* Get();
|
static SharedBufferList* Get();
|
||||||
static void Invalidate();
|
static void Invalidate();
|
||||||
|
|
||||||
void Put();
|
void Put();
|
||||||
void DeleteGroupAndPut(sem_id groupReclaimSem);
|
void DeleteGroupAndPut(
|
||||||
|
sem_id groupReclaimSem);
|
||||||
|
|
||||||
status_t Lock();
|
status_t Lock();
|
||||||
status_t Unlock();
|
status_t Unlock();
|
||||||
|
|
||||||
status_t AddBuffer(sem_id groupReclaimSem,
|
status_t AddBuffer(sem_id groupReclaimSem,
|
||||||
BBuffer* buffer);
|
BBuffer* buffer);
|
||||||
status_t RequestBuffer(sem_id groupReclaimSem,
|
|
||||||
int32 buffersInGroup, size_t size,
|
|
||||||
media_buffer_id wantID, BBuffer** _buffer,
|
|
||||||
bigtime_t timeout);
|
|
||||||
status_t RecycleBuffer(BBuffer* buffer);
|
|
||||||
status_t GetBufferList(sem_id groupReclaimSem,
|
|
||||||
int32 bufferCount, BBuffer** buffers);
|
|
||||||
|
|
||||||
|
status_t RequestBuffer(sem_id groupReclaimSem,
|
||||||
|
int32 buffersInGroup, size_t size,
|
||||||
|
media_buffer_id wantID,
|
||||||
|
BBuffer** _buffer,
|
||||||
|
bigtime_t timeout);
|
||||||
|
|
||||||
|
status_t RecycleBuffer(BBuffer* buffer);
|
||||||
|
|
||||||
|
status_t GetBufferList(sem_id groupReclaimSem,
|
||||||
|
int32 bufferCount,
|
||||||
|
BBuffer** buffers);
|
||||||
private:
|
private:
|
||||||
struct _shared_buffer_info {
|
struct _shared_buffer_info {
|
||||||
media_buffer_id id;
|
media_buffer_id id;
|
||||||
@@ -45,19 +51,20 @@ private:
|
|||||||
sem_id reclaim_sem;
|
sem_id reclaim_sem;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 16 bytes per buffer, 8 pages in total (one entry less for the list)
|
||||||
enum { kMaxBuffers = 2047 };
|
enum { kMaxBuffers = 2047 };
|
||||||
// 16 bytes per buffer, 8 pages in total (one entry less for the list)
|
|
||||||
|
|
||||||
status_t _Init();
|
status_t _Init();
|
||||||
void _RequestBufferInOtherGroups(
|
void _RequestBufferInOtherGroups(
|
||||||
sem_id groupReclaimSem, media_buffer_id id);
|
sem_id groupReclaimSem,
|
||||||
|
media_buffer_id id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
sem_id fSemaphore;
|
sem_id fSemaphore;
|
||||||
int32 fAtom;
|
int32 fAtom;
|
||||||
|
|
||||||
_shared_buffer_info fInfos[kMaxBuffers];
|
_shared_buffer_info fInfos[kMaxBuffers];
|
||||||
int32 fCount;
|
int32 fCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user