fixed casting bugs (builds now)
also fixed newline at end of file. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1240 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -51,17 +51,22 @@ LegacyAudioConsumer::LegacyAudioConsumer( BMediaAddOn *addon, const char *name,
|
|||||||
|
|
||||||
mBuffer_size = 4096;
|
mBuffer_size = 4096;
|
||||||
|
|
||||||
io_buf1 = malloc( 2 * ( sizeof( audio_buffer_header ) + mBuffer_size ) );
|
io_buf1 = static_cast<audio_buffer_header *>(
|
||||||
|
malloc( 2 * ( sizeof( audio_buffer_header ) + mBuffer_size ))
|
||||||
|
);
|
||||||
|
|
||||||
if ( io_buf1 == NULL ) {
|
if ( io_buf1 == NULL ) {
|
||||||
close( fd );
|
close( fd );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
io_buf2 = static_cast<char *>( io_buf1 ) + sizeof( audio_buffer_header ) + mBuffer_size;
|
io_buf2 = reinterpret_cast<audio_buffer_header *>(
|
||||||
|
reinterpret_cast<char *>(const_cast<audio_buffer_header *>( io_buf1 ))
|
||||||
|
+ sizeof( audio_buffer_header )
|
||||||
|
+ mBuffer_size);
|
||||||
|
|
||||||
static_cast<audio_buffer_header *>( io_buf1 )->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
|
io_buf1->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
|
||||||
static_cast<audio_buffer_header *>( io_buf2 )->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
|
io_buf2->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
|
||||||
|
|
||||||
mInitStatus = B_OK;
|
mInitStatus = B_OK;
|
||||||
return;
|
return;
|
||||||
@@ -84,7 +89,7 @@ LegacyAudioConsumer::~LegacyAudioConsumer()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( io_buf1 != NULL ) {
|
if ( io_buf1 != NULL ) {
|
||||||
free( static_cast<void *>( io_buf1 ) );
|
free( static_cast<void *>(const_cast<audio_buffer_header *>(io_buf1)) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( fd != 0 ) {
|
if ( fd != 0 ) {
|
||||||
@@ -375,16 +380,16 @@ LegacyAudioConsumer::HandleSeek( bigtime_t performance_time )
|
|||||||
void
|
void
|
||||||
LegacyAudioConsumer::HandleBuffer( BBuffer *buffer )
|
LegacyAudioConsumer::HandleBuffer( BBuffer *buffer )
|
||||||
{
|
{
|
||||||
void *buf;
|
audio_buffer_header *buf;
|
||||||
|
|
||||||
//wait for free buffer
|
//wait for free buffer
|
||||||
acquire_sem( mBuffer_free );
|
acquire_sem( mBuffer_free );
|
||||||
|
|
||||||
//avoid buffer currently in use
|
//avoid buffer currently in use
|
||||||
buf = static_cast<void *>( ( io_buf == io_buf2 ) ? io_buf1 : io_buf2 );
|
buf = const_cast<audio_buffer_header *>( ( io_buf == io_buf2 ) ? io_buf1 : io_buf2 );
|
||||||
|
|
||||||
//prepare buffer
|
//prepare buffer
|
||||||
memcpy( static_cast<char *>( buf ) + sizeof( audio_buffer_header ), buffer->Data(), buffer->SizeUsed() );
|
memcpy( reinterpret_cast<char *>( buf ) + sizeof( audio_buffer_header ), buffer->Data(), buffer->SizeUsed() );
|
||||||
|
|
||||||
//tell the io thread a new buffer is ready
|
//tell the io thread a new buffer is ready
|
||||||
release_sem( mBuffer_avail );
|
release_sem( mBuffer_avail );
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
#include <media/MediaNode.h>
|
#include <media/MediaNode.h>
|
||||||
#include <support/Locker.h>
|
#include <support/Locker.h>
|
||||||
|
|
||||||
|
struct audio_buffer_header;
|
||||||
|
|
||||||
class LegacyAudioConsumer :
|
class LegacyAudioConsumer :
|
||||||
public virtual BMediaEventLooper,
|
public virtual BMediaEventLooper,
|
||||||
public virtual BBufferConsumer
|
public virtual BBufferConsumer
|
||||||
@@ -106,8 +108,8 @@ class LegacyAudioConsumer :
|
|||||||
|
|
||||||
size_t mBuffer_size;
|
size_t mBuffer_size;
|
||||||
|
|
||||||
volatile void *io_buf1;
|
volatile audio_buffer_header *io_buf1;
|
||||||
volatile void *io_buf2;
|
volatile audio_buffer_header *io_buf2;
|
||||||
volatile void *io_buf;
|
volatile void *io_buf;
|
||||||
|
|
||||||
int fd; //file descriptor for hw driver
|
int fd; //file descriptor for hw driver
|
||||||
|
|||||||
@@ -23,4 +23,4 @@ LegacyAudioProducer::LegacyAudioProducer( BMediaAddOn *addon, const char *name,
|
|||||||
: BMediaNode( name ), BMediaEventLooper(), BBufferProducer( B_MEDIA_RAW_AUDIO ), BControllable()
|
: BMediaNode( name ), BMediaEventLooper(), BBufferProducer( B_MEDIA_RAW_AUDIO ), BControllable()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user