Clean SharedBufferList.h.

Signed-off-by: Adrien Destugues <[email protected]>
This commit is contained in:
Dario Casalinuovo
2015-04-13 19:21:35 +02:00
committed by Adrien Destugues
parent 8290e8d3e5
commit 4232706dc8
+32 -25
View File
@@ -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;
}; };