From de52c54764f8fc8beb97940c6201ae28f809881d Mon Sep 17 00:00:00 2001 From: shatty Date: Sat, 28 Sep 2002 09:20:04 +0000 Subject: [PATCH] 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 --- .../legacy/LegacyAudioConsumer.cpp | 21 ++++++++++++------- .../legacy/LegacyAudioConsumer.h | 6 ++++-- .../legacy/LegacyAudioProducer.cpp | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.cpp b/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.cpp index 8a9589d994..d6d3a25fed 100644 --- a/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.cpp +++ b/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.cpp @@ -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( + malloc( 2 * ( sizeof( audio_buffer_header ) + mBuffer_size )) + ); if ( io_buf1 == NULL ) { close( fd ); return; } - io_buf2 = static_cast( io_buf1 ) + sizeof( audio_buffer_header ) + mBuffer_size; + io_buf2 = reinterpret_cast( + reinterpret_cast(const_cast( io_buf1 )) + + sizeof( audio_buffer_header ) + + mBuffer_size); - static_cast( io_buf1 )->reserved_1 = sizeof( audio_buffer_header ) + mBuffer_size; - static_cast( 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( io_buf1 ) ); + free( static_cast(const_cast(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( ( io_buf == io_buf2 ) ? io_buf1 : io_buf2 ); + buf = const_cast( ( io_buf == io_buf2 ) ? io_buf1 : io_buf2 ); //prepare buffer - memcpy( static_cast( buf ) + sizeof( audio_buffer_header ), buffer->Data(), buffer->SizeUsed() ); + memcpy( reinterpret_cast( buf ) + sizeof( audio_buffer_header ), buffer->Data(), buffer->SizeUsed() ); //tell the io thread a new buffer is ready release_sem( mBuffer_avail ); diff --git a/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.h b/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.h index 50093b7bc5..b6dfbb1601 100644 --- a/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.h +++ b/src/add-ons/media/media-add-ons/legacy/LegacyAudioConsumer.h @@ -10,6 +10,8 @@ #include #include +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 diff --git a/src/add-ons/media/media-add-ons/legacy/LegacyAudioProducer.cpp b/src/add-ons/media/media-add-ons/legacy/LegacyAudioProducer.cpp index 83ce054eea..ca920569cb 100644 --- a/src/add-ons/media/media-add-ons/legacy/LegacyAudioProducer.cpp +++ b/src/add-ons/media/media-add-ons/legacy/LegacyAudioProducer.cpp @@ -23,4 +23,4 @@ LegacyAudioProducer::LegacyAudioProducer( BMediaAddOn *addon, const char *name, : BMediaNode( name ), BMediaEventLooper(), BBufferProducer( B_MEDIA_RAW_AUDIO ), BControllable() { } -#endif \ No newline at end of file +#endif