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:
shatty
2002-09-28 09:20:04 +00:00
parent ce832bb128
commit de52c54764
3 changed files with 18 additions and 11 deletions
@@ -51,17 +51,22 @@ LegacyAudioConsumer::LegacyAudioConsumer( BMediaAddOn *addon, const char *name,
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 ) {
close( fd );
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;
static_cast<audio_buffer_header *>( io_buf2 )->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
io_buf1->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
io_buf2->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size;
mInitStatus = B_OK;
return;
@@ -84,7 +89,7 @@ LegacyAudioConsumer::~LegacyAudioConsumer()
}
if ( io_buf1 != NULL ) {
free( static_cast<void *>( io_buf1 ) );
free( static_cast<void *>(const_cast<audio_buffer_header *>(io_buf1)) );
}
if ( fd != 0 ) {
@@ -375,16 +380,16 @@ LegacyAudioConsumer::HandleSeek( bigtime_t performance_time )
void
LegacyAudioConsumer::HandleBuffer( BBuffer *buffer )
{
void *buf;
audio_buffer_header *buf;
//wait for free buffer
acquire_sem( mBuffer_free );
//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
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
release_sem( mBuffer_avail );
@@ -10,6 +10,8 @@
#include <media/MediaNode.h>
#include <support/Locker.h>
struct audio_buffer_header;
class LegacyAudioConsumer :
public virtual BMediaEventLooper,
public virtual BBufferConsumer
@@ -106,8 +108,8 @@ class LegacyAudioConsumer :
size_t mBuffer_size;
volatile void *io_buf1;
volatile void *io_buf2;
volatile audio_buffer_header *io_buf1;
volatile audio_buffer_header *io_buf2;
volatile void *io_buf;
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()
{
}
#endif
#endif