* Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32136 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+51
-43
@@ -27,20 +27,24 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <MediaDefs.h>
|
|
||||||
#include <Buffer.h>
|
#include <Buffer.h>
|
||||||
#include "SharedBufferList.h"
|
|
||||||
|
#include <MediaDefs.h>
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "DataExchange.h"
|
#include "DataExchange.h"
|
||||||
|
#include "SharedBufferList.h"
|
||||||
|
|
||||||
|
|
||||||
namespace BPrivate { namespace media {
|
namespace BPrivate { namespace media {
|
||||||
extern team_id team;
|
extern team_id team;
|
||||||
} } // BPrivate::media
|
} }
|
||||||
using namespace BPrivate::media;
|
using namespace BPrivate::media;
|
||||||
|
|
||||||
/*************************************************************
|
|
||||||
* public struct buffer_clone_info
|
// #pragma mark - buffer_clone_info
|
||||||
*************************************************************/
|
|
||||||
|
|
||||||
buffer_clone_info::buffer_clone_info()
|
buffer_clone_info::buffer_clone_info()
|
||||||
{
|
{
|
||||||
@@ -58,11 +62,11 @@ buffer_clone_info::~buffer_clone_info()
|
|||||||
CALLED();
|
CALLED();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************
|
|
||||||
* public BBuffer
|
|
||||||
*************************************************************/
|
|
||||||
|
|
||||||
void *
|
// #pragma mark - public BBuffer
|
||||||
|
|
||||||
|
|
||||||
|
void*
|
||||||
BBuffer::Data()
|
BBuffer::Data()
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
@@ -145,7 +149,7 @@ BBuffer::Type()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
media_header *
|
media_header*
|
||||||
BBuffer::Header()
|
BBuffer::Header()
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
@@ -153,7 +157,7 @@ BBuffer::Header()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
media_audio_header *
|
media_audio_header*
|
||||||
BBuffer::AudioHeader()
|
BBuffer::AudioHeader()
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
@@ -161,7 +165,7 @@ BBuffer::AudioHeader()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
media_video_header *
|
media_video_header*
|
||||||
BBuffer::VideoHeader()
|
BBuffer::VideoHeader()
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
@@ -176,16 +180,18 @@ BBuffer::Size()
|
|||||||
return SizeAvailable();
|
return SizeAvailable();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************
|
|
||||||
* private BBuffer
|
|
||||||
*************************************************************/
|
|
||||||
|
|
||||||
/* explicit */
|
// #pragma mark - private BBuffer
|
||||||
BBuffer::BBuffer(const buffer_clone_info & info) :
|
|
||||||
fBufferList(0), // must be 0 if not correct initialized
|
|
||||||
fData(0), // must be 0 if not correct initialized
|
BBuffer::BBuffer(const buffer_clone_info& info)
|
||||||
fSize(0), // should be 0 if not correct initialized
|
:
|
||||||
fBufferID(0) // must be 0 if not registered
|
// must all be NULL/0 if not correct initialized
|
||||||
|
fBufferList(NULL),
|
||||||
|
fData(NULL),
|
||||||
|
fSize(0),
|
||||||
|
fBufferID(0)
|
||||||
|
// must be 0 if not registered
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
|
|
||||||
@@ -194,16 +200,15 @@ BBuffer::BBuffer(const buffer_clone_info & info) :
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// ask media_server to get the area_id of the shared buffer list
|
// ask media_server to get the area_id of the shared buffer list
|
||||||
server_get_shared_buffer_area_request area_request;
|
server_get_shared_buffer_area_request areaRequest;
|
||||||
server_get_shared_buffer_area_reply area_reply;
|
server_get_shared_buffer_area_reply areaReply;
|
||||||
if (QueryServer(SERVER_GET_SHARED_BUFFER_AREA, &area_request, sizeof(area_request), &area_reply, sizeof(area_reply)) != B_OK) {
|
if (QueryServer(SERVER_GET_SHARED_BUFFER_AREA, &areaRequest,
|
||||||
|
sizeof(areaRequest), &areaReply, sizeof(areaReply)) != B_OK) {
|
||||||
ERROR("BBuffer::BBuffer: SERVER_GET_SHARED_BUFFER_AREA failed\n");
|
ERROR("BBuffer::BBuffer: SERVER_GET_SHARED_BUFFER_AREA failed\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(area_reply.area > 0);
|
fBufferList = _shared_buffer_list::Clone(areaReply.area);
|
||||||
|
|
||||||
fBufferList = _shared_buffer_list::Clone(area_reply.area);
|
|
||||||
if (fBufferList == NULL) {
|
if (fBufferList == NULL) {
|
||||||
ERROR("BBuffer::BBuffer: _shared_buffer_list::Clone() failed\n");
|
ERROR("BBuffer::BBuffer: _shared_buffer_list::Clone() failed\n");
|
||||||
return;
|
return;
|
||||||
@@ -223,8 +228,10 @@ BBuffer::BBuffer(const buffer_clone_info & info) :
|
|||||||
// until the last buffer has been unregistered
|
// until the last buffer has been unregistered
|
||||||
// the area_id of the cached area is passed back to us, and we clone it.
|
// the area_id of the cached area is passed back to us, and we clone it.
|
||||||
|
|
||||||
if (QueryServer(SERVER_REGISTER_BUFFER, &request, sizeof(request), &reply, sizeof(reply)) != B_OK) {
|
if (QueryServer(SERVER_REGISTER_BUFFER, &request, sizeof(request), &reply,
|
||||||
ERROR("BBuffer::BBuffer: failed to register buffer with media_server\n");
|
sizeof(reply)) != B_OK) {
|
||||||
|
ERROR("BBuffer::BBuffer: failed to register buffer with "
|
||||||
|
"media_server\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,14 +248,14 @@ BBuffer::BBuffer(const buffer_clone_info & info) :
|
|||||||
|
|
||||||
fArea = clone_area("a cloned BBuffer", &fData, B_ANY_ADDRESS,
|
fArea = clone_area("a cloned BBuffer", &fData, B_ANY_ADDRESS,
|
||||||
B_READ_AREA | B_WRITE_AREA, reply.info.area);
|
B_READ_AREA | B_WRITE_AREA, reply.info.area);
|
||||||
if (fArea <= B_OK) {
|
if (fArea < 0) {
|
||||||
// XXX should unregister buffer here
|
// TODO: should unregister buffer here
|
||||||
ERROR("BBuffer::BBuffer: buffer cloning failed\n");
|
ERROR("BBuffer::BBuffer: buffer cloning failed\n");
|
||||||
fData = 0;
|
fData = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fData = (char *)fData + fOffset;
|
fData = (char*)fData + fOffset;
|
||||||
fMediaHeader.size_used = 0;
|
fMediaHeader.size_used = 0;
|
||||||
fMediaHeader.buffer = fBufferID;
|
fMediaHeader.buffer = fBufferID;
|
||||||
}
|
}
|
||||||
@@ -258,12 +265,11 @@ BBuffer::~BBuffer()
|
|||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
// unmap the BufferList
|
// unmap the BufferList
|
||||||
if (fBufferList != NULL) {
|
if (fBufferList != NULL)
|
||||||
fBufferList->Unmap();
|
fBufferList->Unmap();
|
||||||
}
|
|
||||||
// unmap the Data
|
// unmap the Data
|
||||||
if (fData != NULL) {
|
if (fData != NULL) {
|
||||||
|
|
||||||
delete_area(fArea);
|
delete_area(fArea);
|
||||||
|
|
||||||
// ask media_server to unregister the buffer
|
// ask media_server to unregister the buffer
|
||||||
@@ -278,23 +284,25 @@ BBuffer::~BBuffer()
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BBuffer::SetHeader(const media_header *header)
|
BBuffer::SetHeader(const media_header* header)
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
fMediaHeader = *header;
|
fMediaHeader = *header;
|
||||||
|
|
||||||
// XXX why can't we do this without crash? what's wrong?
|
// TODO: why can't we do this without crash? what's wrong?
|
||||||
// fMediaHeader.buffer = fBufferID;
|
// fMediaHeader.buffer = fBufferID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************
|
// #pragma mark - public BSmallBuffer
|
||||||
* public BSmallBuffer
|
|
||||||
*************************************************************/
|
|
||||||
|
static const buffer_clone_info sSmallBufferInfo;
|
||||||
|
|
||||||
|
|
||||||
static const buffer_clone_info info;
|
|
||||||
BSmallBuffer::BSmallBuffer()
|
BSmallBuffer::BSmallBuffer()
|
||||||
: BBuffer(info)
|
:
|
||||||
|
BBuffer(sSmallBufferInfo)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED();
|
UNIMPLEMENTED();
|
||||||
debugger("BSmallBuffer::BSmallBuffer called\n");
|
debugger("BSmallBuffer::BSmallBuffer called\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user