[SNDREC32]
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 21 Dec 2013 13:29:23 +0000 (13:29 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 21 Dec 2013 13:29:23 +0000 (13:29 +0000)
* Attempt to fix a.. crime against style.

svn path=/trunk/; revision=61314

20 files changed:
reactos/base/applications/sndrec32/audio_api.hpp
reactos/base/applications/sndrec32/audio_def.hpp
reactos/base/applications/sndrec32/audio_format.cpp
reactos/base/applications/sndrec32/audio_format.hpp
reactos/base/applications/sndrec32/audio_membuffer.cpp
reactos/base/applications/sndrec32/audio_membuffer.hpp
reactos/base/applications/sndrec32/audio_producer.cpp
reactos/base/applications/sndrec32/audio_producer.hpp
reactos/base/applications/sndrec32/audio_receiver.hpp
reactos/base/applications/sndrec32/audio_resampler_acm.cpp
reactos/base/applications/sndrec32/audio_resampler_acm.hpp
reactos/base/applications/sndrec32/audio_wavein.cpp
reactos/base/applications/sndrec32/audio_wavein.hpp
reactos/base/applications/sndrec32/audio_waveout.cpp
reactos/base/applications/sndrec32/audio_waveout.hpp
reactos/base/applications/sndrec32/kkaudio.hpp
reactos/base/applications/sndrec32/sndrec32.cpp
reactos/base/applications/sndrec32/sndrec32.h
reactos/base/applications/sndrec32/stdafx.h
reactos/base/applications/sndrec32/targetver.h

index 5ea4d32..6ff7fbb 100644 (file)
@@ -1,12 +1,7 @@
 #ifndef __AUDIO_API__
 #define __AUDIO_API__
 
-//#include "audio_def.hpp"
-//#include "audio_format.hpp"
 #include "audio_membuffer.hpp"
-//#include "audio_producer.hpp"
-//#include "audio_receiver.hpp"
-//#include "audio_resampler_acm.hpp"
 #include "audio_wavein.hpp"
 #include "audio_waveout.hpp"
 
index 4f408be..73b94be 100644 (file)
@@ -5,21 +5,10 @@
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
 #ifndef _AUDIO_DEF__H_
 #define _AUDIO_DEF__H_
 
-
-//#include <iostream>
-
-
-
-//
-// Defaults
-//
-
-
+/* Defaults */
 
 #define _AUDIO_DEFAULT_FORMAT A44100_16BIT_STEREO
 
 
 #define _AUDIO_DEFAULT_BUFSECS 1.0f
 
-
-
-//
-// Namespace stuff
-//
-
+/* Namespace stuff */
 #define _AUDIO_NAMESPACE_START_ namespace snd {
 #define _AUDIO_NAMESPACE_END_ };
 
-
-
-
-
-//
-// Platform depend stuff
-//
-
-//#include <windows.h>
-#include <mmsystem.h> //Windows MultiMedia (WINMM) audio apis
-#include <mmreg.h> //codecs stuff
-#include <msacm.h> //codecs stuff
-
-
-
-
+/* Platform depend stuff */
+#include <mmsystem.h> // Windows MultiMedia (WINMM) audio apis
+#include <mmreg.h> // codecs stuff
+#include <msacm.h> // codecs stuff
 
 //#pragma comment(lib, "winmm.lib")
 //#pragma comment(lib, "msacm32.lib")
 
-
-
-
-
-
-
-
 #endif //ifdef _AUDIO_DEF__H_
index be927bf..20fffc0 100644 (file)
@@ -5,31 +5,15 @@
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
-
 #include "stdafx.h"
 #include "audio_format.hpp"
 
-
-
-
 _AUDIO_NAMESPACE_START_
 
+/* Standard audio formats (declared as externs in `audio_format.hpp') */
 
-
-//
-// Standard audio formats (declared as
-// externs in `audio_format.hpp')
-//
-
-audio_format UNNKOWN_FORMAT( 0, 0, 0);
-audio_format A44100_16BIT_STEREO( 44100, 16, 2 );
-audio_format A44100_16BIT_MONO( 44100, 16, 1 );
-
-
-
-
-
+audio_format UNNKOWN_FORMAT(0, 0, 0);
+audio_format A44100_16BIT_STEREO(44100, 16, 2);
+audio_format A44100_16BIT_MONO(44100, 16, 1);
 
 _AUDIO_NAMESPACE_END_
index 947e34d..ccd8923 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
 #ifndef _AUDIOFORMAT__H_
 #define _AUDIOFORMAT__H_
 
-
-
 #include "audio_def.hpp"
 
-
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
-
-
-
-
 class audio_format
 {
     protected:
-    
-
         unsigned int samples_psec;
         unsigned short int bits_psample;
         unsigned short int chan;
-
-
     public:
-        
-        
-        //
-        // Ctors
-        //
-
-        audio_format( unsigned int samples_per_second, 
-            unsigned short int bits_per_sample, unsigned short int channels )
-
-            : samples_psec( samples_per_second ), bits_psample( bits_per_sample ),
-            chan( channels )
-
-        {     }
-
-
-
-
-
-
-
-        //
-        // Dtor
-        //
-
-        virtual ~audio_format( void )
-        { }
-
-
-
-
-
-
-
-        //
-        // Operators
-        //
-
-        bool operator==( audio_format & eq ) const
+        /* Ctors */
+        audio_format(unsigned int samples_per_second,
+                     unsigned short int bits_per_sample,
+                     unsigned short int channels) : samples_psec(samples_per_second),
+                                                    bits_psample(bits_per_sample),
+                                                    chan(channels)
         {
-            //
-            // The same audio format is when samples per second,
-            // bit per sample, and channels mono/stereo are equal.
-            //
-
-            return (( samples_psec == eq.samples_psec ) 
-                && ( bits_psample == eq.bits_psample ) && ( chan == eq.chan ));
         }
 
+        /* Dtor */
+        virtual ~audio_format(void)
+        {
+        }
 
-
-
-
-
-
-
-        //
-        // Public Functions
-        //
-
-        unsigned int sample_rate( void ) const
-        { return samples_psec; }
-
-
-        unsigned short int bits( void ) const
-        { return bits_psample; }
-
-
-        unsigned short int channels( void ) const
-        { return chan; }
-
-
-        unsigned int byte_rate( void ) const
-        { return ( samples_psec * chan * ( bits_psample / 8 )); }
-
-
-        unsigned int block_align( void ) const
-        { return ( chan * ( bits_psample / 8 )); }
-
-
-
-        unsigned int samples_in_seconds( float seconds ) const
+        /* Operators */
+        bool operator==(audio_format & eq) const
         {
+            /* The same audio format is when samples per second,
+               bit per sample, and channels mono/stereo are equal */
+            return ((samples_psec == eq.samples_psec) &&
+                    (bits_psample == eq.bits_psample) &&
+                    (chan == eq.chan));
+        }
 
-            return ( unsigned int )
-                ((( float )samples_psec * ( float ) chan ) * seconds );
+        /* Public Functions */
 
+        unsigned int sample_rate(void) const
+        {
+            return samples_psec;
         }
 
-        unsigned int samples_in_bytes ( unsigned int bytes ) const
+        unsigned short int bits(void) const
         {
+            return bits_psample;
+        }
 
-            return ( bytes / (( bits_psample / 8 ) * chan ));
+        unsigned short int channels(void) const
+        {
+            return chan;
+        }
 
+        unsigned int byte_rate(void) const
+        {
+            return (samples_psec * chan * (bits_psample / 8));
         }
 
-        unsigned int bytes_in_samples( unsigned int samples ) const
+        unsigned int block_align(void) const
         {
+            return (chan * (bits_psample / 8));
+        }
 
-            return ( samples * (( bits_psample / 8 ) * chan ));
+        unsigned int samples_in_seconds(float seconds) const
+        {
+            return (unsigned int)(((float)samples_psec * (float) chan) * seconds);
+        }
 
+        unsigned int samples_in_bytes(unsigned int bytes) const
+        {
+            return (bytes / ((bits_psample / 8) * chan));
         }
 
+        unsigned int bytes_in_samples(unsigned int samples) const
+        {
+            return (samples * ((bits_psample / 8) * chan));
+        }
 };
 
-
-
-
 extern audio_format UNKNOWN_FORMAT;
 extern audio_format A44100_16BIT_STEREO;
 extern audio_format A44100_16BIT_MONO;
 
-
-
-
-
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-
-
-
-#endif //ifdef _AUDIOFORMAT__H_
+#endif /* _AUDIOFORMAT__H_ */
index edad39a..b239346 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
 #include "stdafx.h"
 #include "audio_membuffer.hpp"
 
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
-
-//////////////////////////////////////
-/////// Protected Functions  /////////
-//////////////////////////////////////
-
+/* Protected Functions */
 
 void 
-audio_membuffer::alloc_mem_( unsigned int bytes )
+audio_membuffer::alloc_mem_(unsigned int bytes)
 {
-
-    //
-    // Some checking
-    //
-
-    if ( bytes == 0 )
+    /* Some checking */
+    if (bytes == 0)
         return;
 
-
-
-
-
-    //
-    // Checks previsiously alloc'd memory
-    // and frees it.
-    //
-
-    if ( audio_data )
+    /* Checks previsiously alloc'd memory and frees it */
+    if (audio_data)
         delete[] audio_data;
 
+    /* Allocs new memory and zeros it */
+    audio_data = new BYTE[bytes];
+    memset(audio_data, 0, bytes * sizeof(BYTE));
 
-
-    //
-    // Allocs new memory and zeros it.
-    //
-
-    audio_data = new BYTE[ bytes ];
-
-
-    memset( audio_data, 0, bytes * sizeof( BYTE ));
-
-
-
-    //
-    // Sets the correct buffer size
-    //
-
+    /* Sets the correct buffer size */
     buf_size = bytes;
-
-
     init_size = bytes;
-
-
-
 }
 
-
 void
-audio_membuffer::free_mem_( void )
+audio_membuffer::free_mem_(void)
 {
-
-    if ( audio_data )
+    if (audio_data)
         delete[] audio_data;
 
     buf_size = 0;
     audio_data = 0;
-
 }
 
-
 void
-audio_membuffer::resize_mem_( unsigned int new_size )
+audio_membuffer::resize_mem_(unsigned int new_size)
 {
-
-
-    if ( new_size == 0 )
+    if (new_size == 0)
         return;
 
-
-    //
-    // The new_size, cannot be <= of the
-    // `bytes_received' member value of the
-    // parent class `audio_receiver'.
-    // We cannot touch received audio data,
-    // so we have to alloc at least
-    // bytes_received+1 bytes.
-    //
-    // But we can truncate unused memory, so
-    // `new_size' can be < of `buf_size'.
-    //
-
-    if ( new_size <= bytes_received )
+    /* The new_size, cannot be <= of the `bytes_received' member value of the
+       parent class `audio_receiver'. We cannot touch received audio data,
+       so we have to alloc at least bytes_received+1 bytes. But we can truncate
+       unused memory, so `new_size' can be < of `buf_size' */
+    if (new_size <= bytes_received)
         return;
 
-
-    
-
     BYTE * new_mem;
 
+    /* Allocs new memory and zeros it */
+    new_mem = new BYTE[new_size];
+    memset(new_mem, 0, new_size * sizeof(BYTE));
 
-
-    //
-    // Allocs new memory and zeros it.
-    //
-
-
-    new_mem = new BYTE[ new_size ];
-
-    memset( new_mem, 0, new_size * sizeof( BYTE ));
-
-
-
-    if ( audio_data )
+    if (audio_data)
     {
-
-
-        //
-        // Copies received audio data, and discard
-        // unused memory.
-        //
-
-        memcpy( new_mem, audio_data, bytes_received );
-
-
-
-        //
-        // Frees old memory.
-        //
-
+        /* Copies received audio data, and discard unused memory */
+        memcpy(new_mem, audio_data, bytes_received);
+        /* Frees old memory */
         delete[] audio_data;
-
-
-
-
-
-        //
-        // Commit new memory.
-        //
-
+        /* Commit new memory */
         audio_data = new_mem;
         buf_size = new_size;
-
-
-
-
     } else {
-
         audio_data = new_mem;
         buf_size = new_size;
     }
 
-
-    if ( buffer_resized )
-        buffer_resized( new_size );
-
+    if (buffer_resized)
+        buffer_resized(new_size);
 }
 
-
-
-
 void 
-audio_membuffer::truncate_( void )
+audio_membuffer::truncate_(void)
 {
-
-    //
-    // If `buf_size' is already = to the
-    // `bytes_received' of audio data, then
-    // this operation is useless; simply return.
-    //
-
-    if ( bytes_received == buf_size )
+    /* If `buf_size' is already = to the `bytes_received' of audio data,
+       then this operation is useless; simply return */
+    if (bytes_received == buf_size)
         return;
 
-
-
-    if ( audio_data )
+    if (audio_data)
     {
-
-        
-        //
-        // Allocs a new buffer.
-        //
-
-        BYTE * newbuf = new BYTE[ bytes_received ];
-
-
-
-
-        //
-        // Copies audio data.
-        //
-
-        memcpy( newbuf, audio_data, bytes_received );
-
-
-
-        //
-        // Frees old memory.
-        //
-
+        /* Allocs a new buffer */
+        BYTE * newbuf = new BYTE[bytes_received];
+        /* Copies audio data */
+        memcpy(newbuf, audio_data, bytes_received);
+        /* Frees old memory */
         delete[] audio_data;
-
-
-
-        //
-        // Commit the new buffer.
-        //
-
+        /* Commit the new buffer */
         audio_data = newbuf;
         buf_size = bytes_received;
 
-
-
-        //
-        // Buffer truncation successfull.
-        // Now the buffer size is exactly big
-        // as much audio data was received.
-        //
-
-
+        /* Buffer truncation successfull. Now the buffer size is exactly big
+           as much audio data was received */
     }
-
-
 }
 
-
-
-
-
-
-//////////////////////////////////////
-/////// Public Functions   ///////////
-//////////////////////////////////////
-
-
-
+/* Public Functions */
 
 void
-audio_membuffer::clear( void )
+audio_membuffer::clear(void)
 {
-
     free_mem_();
-
     bytes_received = 0;
 }
 
-
-
 void 
-audio_membuffer::reset( void )
+audio_membuffer::reset(void)
 {
-
-
-    //
-    // Frees memory and reset
-    // to initial state.
-    //
-
+    /* Frees memory and reset to initial state */
     clear();
-
-
-
-    //
-    // Alloc memory of size specified
-    // at the constructor.
-    //
-
-    alloc_mem_( init_size );
-
-
+    /* Alloc memory of size specified at the constructor */
+    alloc_mem_(init_size);
 }
 
 void 
-audio_membuffer::alloc_bytes( unsigned int bytes )
+audio_membuffer::alloc_bytes(unsigned int bytes)
 {
-
-    alloc_mem_( bytes );
-
+    alloc_mem_(bytes);
 }
 
-
-
-        
 void 
-audio_membuffer::alloc_seconds( unsigned int secs )
+audio_membuffer::alloc_seconds(unsigned int secs)
 {
-    
-    alloc_mem_( aud_info.byte_rate() * secs );
-
+    alloc_mem_(aud_info.byte_rate() * secs);
 }
 
-
 void 
-audio_membuffer::alloc_seconds( float secs )
+audio_membuffer::alloc_seconds(float secs)
 {
-
-    alloc_mem_(( unsigned int )(( float ) aud_info.byte_rate() * secs ));
-
+    alloc_mem_((unsigned int)((float)aud_info.byte_rate() * secs));
 }
 
-
-
-
 void 
-audio_membuffer::resize_bytes( unsigned int bytes )
+audio_membuffer::resize_bytes(unsigned int bytes)
 {
-
-    resize_mem_( bytes );
-
+    resize_mem_(bytes);
 }
 
-
-        
 void 
-audio_membuffer::resize_seconds( unsigned int secs )
+audio_membuffer::resize_seconds(unsigned int secs)
 {
-
-    resize_mem_( aud_info.byte_rate() * secs );
-
+    resize_mem_(aud_info.byte_rate() * secs);
 }
 
-
 void 
-audio_membuffer::resize_seconds( float secs )
+audio_membuffer::resize_seconds(float secs)
 {
-
-    resize_mem_(( unsigned int )
-        (( float )aud_info.byte_rate() * secs )
-    );
-
+    resize_mem_((unsigned int)((float)aud_info.byte_rate() * secs));
 }
 
-
-
-
-
-///////////////////////////////////////
-///////  Inherited Functions  /////////
-///////////////////////////////////////
-
-
-
-
-
-
+/* Inherited Functions */
 
 void 
-audio_membuffer::audio_receive
-        ( unsigned char * data, unsigned int size )
+audio_membuffer::audio_receive(unsigned char *data, unsigned int size)
 {
-
-    
-
-
-    //
-    // If there isn't a buffer, allocs memory for
-    // it of size*2, and copies audio data arrival.
-    //
-
-    if (( audio_data == 0 ) || ( buf_size == 0 ))
+    /* If there isn't a buffer, allocs memory for it of size*2, and copies audio data arrival */
+    if ((audio_data == 0) || (buf_size == 0))
     {
-        alloc_mem_( size * 2 );
-
-        memcpy( audio_data, data, size );
-
+        alloc_mem_(size * 2);
+        memcpy(audio_data, data, size);
         return;
-
     }
 
-
-
-
-
-    //
-    // If buffer's free memory is < of `size',
-    // we have to realloc buffer memory of
-    // buf_size*2, while free memory is enough
-    // to contain `size' bytes.
-    //
-    // In this case free memory is represented
-    // by `buf_size - bytes_recorded'.
-    //
-
-    unsigned int tot_mem = buf_size,
-        free_mem = buf_size - bytes_received;
-
-
-    if ( free_mem < size )
+    /* If buffer's free memory is < of `size', we have to realloc buffer memory
+       of buf_size*2, while free memory is enough to contain `size' bytes.
+       In this case free memory is represented by `buf_size - bytes_recorded' */
+    unsigned int tot_mem = buf_size, free_mem = buf_size - bytes_received;
+    if (free_mem < size)
     {
-
-        //
-        // Calcs new buffer size.
-        // TODO: flags for other behaviour?
-
-        while ( free_mem < size )
+        /* Calcs new buffer size */
+        /* TODO: flags for other behaviour? */
+        while (free_mem < size)
         {
             tot_mem *= 2;
-
             free_mem = tot_mem - bytes_received;
         }
 
-
-
-        //
-        // Resize buffer memory.
-        //
-
-        resize_mem_( tot_mem );
-
+        /* Resize buffer memory */
+        resize_mem_(tot_mem);
     }
-        
-
-    //
-    // Now we have enough free space in the
-    // buffer, so let's copy audio data arrivals.
-    //
-
-    memcpy( audio_data + bytes_received, data, size );
-
-
-    
-    
-    if ( audio_arrival )
-        audio_arrival( aud_info.samples_in_bytes( size ));
-    
 
+    /* Now we have enough free space in the buffer, so let's copy audio data arrivals */
+    memcpy(audio_data + bytes_received, data, size);
 
+    if (audio_arrival)
+        audio_arrival(aud_info.samples_in_bytes(size));
 }
 
-
 unsigned int 
-audio_membuffer::read( BYTE * out_buf, unsigned int bytes )
+audio_membuffer::read(BYTE *out_buf, unsigned int bytes)
 {
-
-
-    //
-    // Some checking
-    //
-    
-    if ( !audio_data )
+    /* Some checking */
+    if (!audio_data)
         return 0;
 
-
-    if ( bytes_played_ >= bytes_received )
+    if (bytes_played_ >= bytes_received)
         return 0;
 
+    unsigned int to_play = bytes_received - bytes_played_;
+    unsigned int to_copy = bytes > to_play ? to_play : bytes;
 
+    /* Copies the audio data out */
+    if ((out_buf) && (to_copy) && (audio_data))
+        memcpy(out_buf, audio_data + bytes_played_, to_copy);
 
-    unsigned int to_play =  
-        bytes_received - bytes_played_;
-
-
-    unsigned int to_copy = 
-        bytes > to_play ? to_play : bytes;
-    
-
-    //
-    // Copies the audio data out.
-    //
-
-    if (( out_buf ) && ( to_copy ) && ( audio_data ))
-        memcpy( out_buf, audio_data + bytes_played_, to_copy );
-
-
-    //
-    // Increments the number of total bytes
-    // played (audio data gone out from the
-    // `audio_producer' object).
-    //
-
+    /* Increments the number of total bytes played (audio data gone out from
+       the `audio_producer' object) */
     bytes_played_ += to_copy;
 
+    if (audio_arrival)
+        audio_arrival(aud_info.samples_in_bytes(to_copy));
 
-    if ( audio_arrival )
-        audio_arrival( aud_info.samples_in_bytes( to_copy ));
-
-    
-    //
-    // Returns the exact size of audio data
-    // produced.
-    //
-
+    /* Returns the exact size of audio data produced */
     return to_copy;
 }
 
-
 bool
-audio_membuffer::finished( void ) 
+audio_membuffer::finished(void)
 {
-    if ( bytes_played_ < bytes_received )
+    if (bytes_played_ < bytes_received)
         return false;
     else
         return true;
 }
 
-
 _AUDIO_NAMESPACE_END_
index 046fc58..cfdea9b 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
 #ifndef _AUDIOMEMBUFFER__H_
 #define _AUDIOMEMBUFFER__H_
 
-
-
-//#include "audio_def.hpp"
 #include "audio_receiver.hpp"
 #include "audio_format.hpp"
 #include "audio_producer.hpp"
 
-
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
 class audio_membuffer : public audio_receiver, public audio_producer
 {
-
-
-    
-
-
     protected:
-
         BYTE * audio_data;
         audio_format aud_info;
         unsigned int buf_size;
         unsigned int init_size;
 
+        /* Protected Functions */
 
-
-        //
-        // Protected Functions
-        //
-
-
-        //allocs N bytes for the audio buffer.
-        void alloc_mem_( unsigned int );
-
-
-        //frees memory
-        void free_mem_( void );
-
-
-        //resizes memory, and copies old
-        //audio data to new-size memory
-        void resize_mem_( unsigned int );
-
-
-        //truncates and discards unused memory.
-        //`buf_size' will be the same as `bytes_received'.
-        void truncate_( void );
-
-
-
+        /* allocs N bytes for the audio buffer */
+        void alloc_mem_(unsigned int);
+        /* frees memory */
+        void free_mem_(void);
+        /* resizes memory, and copies old audio data to new-size memory */
+        void resize_mem_(unsigned int);
+        /* truncates and discards unused memory. `buf_size' will be the same as `bytes_received' */
+        void truncate_(void);
 
     public:
-
-        
-        void ( * audio_arrival )( unsigned int );
-        void ( * buffer_resized ) ( unsigned int );
-
-        
-        //
-        // Ctors
-        //
-
-        audio_membuffer( void )
-            : audio_data( 0 ), aud_info( _AUDIO_DEFAULT_FORMAT ),
-            buf_size( 0 ), init_size( 0 )
-        {  
-            
-            //
-            // Allocs memory for at least 1 or some seconds
-            // of recording.
-            //
-            init_size = ( unsigned int )
-                (( float )aud_info.byte_rate() * _AUDIO_DEFAULT_BUFSECS );
-
-
-            alloc_mem_( init_size );
-
-        
+        void (* audio_arrival)(unsigned int);
+        void (* buffer_resized)(unsigned int);
+
+        /* Ctors */
+        audio_membuffer(void) : audio_data(0),
+                                aud_info(_AUDIO_DEFAULT_FORMAT),
+                                buf_size(0),
+                                init_size(0)
+        {
+            /* Allocs memory for at least 1 or some seconds of recording */
+            init_size = (unsigned int)((float)aud_info.byte_rate() * _AUDIO_DEFAULT_BUFSECS);
+            alloc_mem_(init_size);
         }
 
-
-
-        audio_membuffer( audio_format aud_fmt )
-            : audio_data( 0 ), aud_info( aud_fmt ), buf_size( 0 ),
-            init_size( 0 )
-        {  
-        
-            //
-            // Allocs memory for at least 1 or some seconds
-            // of recording.
-            //
-            init_size = ( unsigned int )
-                (( float )aud_info.byte_rate() * _AUDIO_DEFAULT_BUFSECS );
-
-
-            alloc_mem_( init_size );
-        
+        audio_membuffer(audio_format aud_fmt) : audio_data(0),
+                                                aud_info(aud_fmt),
+                                                buf_size(0),
+                                                init_size(0)
+        {
+            /* Allocs memory for at least 1 or some seconds of recording */
+            init_size = (unsigned int)((float)aud_info.byte_rate() * _AUDIO_DEFAULT_BUFSECS);
+            alloc_mem_(init_size);
         }
 
-
-
-
-        audio_membuffer( audio_format aud_fmt, unsigned int seconds )
-            : audio_data( 0 ), aud_info( aud_fmt ), buf_size( 0 ),
-            init_size( 0 )
-        {  
-            
-            //
-            // Allocs memory for audio recording
-            // the specified number of seconds.
-            //
+        audio_membuffer(audio_format aud_fmt, unsigned int seconds) : audio_data(0),
+                                                                      aud_info(aud_fmt),
+                                                                      buf_size(0),
+                                                                      init_size(0)
+        {
+            /* Allocs memory for audio recording the specified number of seconds */
             init_size = aud_info.byte_rate() * seconds;
-            alloc_mem_( init_size );
-        
+            alloc_mem_(init_size);
         }
 
-
-
-        audio_membuffer( audio_format aud_fmt, float seconds )
-            : audio_data( 0 ), aud_info( aud_fmt ), buf_size( 0 ),
-            init_size( 0 )
-        {  
-            
-            //
-            // Allocs memory for audio recording
-            // the specified number of seconds.
-            //
-            init_size = ( unsigned int )(( float ) aud_info.byte_rate() * 
-                seconds <= 0 ? 1 : seconds );
-
-
-            alloc_mem_( init_size );
-        
+        audio_membuffer(audio_format aud_fmt, float seconds) : audio_data(0),
+                                                               aud_info(aud_fmt),
+                                                               buf_size(0),
+                                                               init_size(0)
+        {
+            /* Allocs memory for audio recording the specified number of seconds */
+            init_size = (unsigned int)((float)aud_info.byte_rate() * seconds <= 0 ? 1 : seconds);
+            alloc_mem_(init_size);
         }
 
-
-
-
-        audio_membuffer( unsigned int bytes )
-            : audio_data( 0 ), aud_info( _AUDIO_DEFAULT_FORMAT ),
-            buf_size( 0 ), init_size( 0 )
-        {  
-        
-            //
-            // Allocs memory for the specified bytes
-            //
+        audio_membuffer(unsigned int bytes) : audio_data(0),
+                                              aud_info(_AUDIO_DEFAULT_FORMAT),
+                                              buf_size(0),
+                                              init_size(0)
+        {
+            /* Allocs memory for the specified bytes */
             init_size = bytes;
-            alloc_mem_( init_size );
-        
+            alloc_mem_(init_size);
         }
 
-
-
-
-        //
-        // Dtor
-        //
-
-        virtual ~audio_membuffer( void )
-        { 
-        
-            //
-            // Frees memory and reset values.
-            //
-
+        /* Dtor */
+        virtual ~audio_membuffer(void)
+        {
+            /* Frees memory and reset values */
             clear();
-        
         }
 
+        /* Public functions */
 
-
-
-
-
-
-
-
-        //
-        // Public functions
-        //
-
-
-
-        //returns the audio buffer size in bytes.
-        unsigned int mem_size( void ) const
-        { return buf_size; }
-
-
-        //returns how many audio data has been
-        //received, in bytes.
-        unsigned int bytes_recorded( void ) const
-        { return bytes_received; }
-
-
-        //returns the integer number of seconds
-        //that the buffer can record
-        unsigned int seconds_total( void ) const
-        { return buf_size / aud_info.byte_rate(); }
-
-
-        //returns the integer number of seconds
-        //that the buffer can record
-        unsigned int seconds_recorded( void ) const
-        { return bytes_received / aud_info.byte_rate(); }
-
-
-        //returns the float number of seconds
-        //that the buffer can record
-        float fseconds_total( void ) const
-        { return ( float )(( float ) buf_size / 
-                        ( float ) aud_info.byte_rate()); }
-
-
-        //returns the float number of seconds
-        //that has been recorded
-        float fseconds_recorded( void ) const
-        { return ( float )(( float ) bytes_received / 
-                        ( float ) aud_info.byte_rate()); }
-
-
-        unsigned int total_samples( void ) const
+        /* returns the audio buffer size in bytes */
+        unsigned int mem_size(void) const
         {
-
-            return ( aud_info.samples_in_seconds( fseconds_total() ));
-
+            return buf_size;
         }
 
-
-        unsigned int samples_received( void ) const
+        /* returns how many audio data has been received, in bytes */
+        unsigned int bytes_recorded(void) const
         {
-
-
-            return ( aud_info.samples_in_bytes( bytes_received ));
-
+            return bytes_received;
         }
 
+        /* returns the integer number of seconds that the buffer can record */
+        unsigned int seconds_total(void) const
+        {
+            return buf_size / aud_info.byte_rate();
+        }
 
+        /* returns the integer number of seconds that the buffer can record */
+        unsigned int seconds_recorded(void) const
+        {
+            return bytes_received / aud_info.byte_rate();
+        }
 
-        //returns a pointer to the audio buffer
-        BYTE * audio_buffer( void ) const
-        { return audio_data; }
-
-
-
-        //frees memory and resets values.
-        void clear( void );
-
-
-        audio_format & audinfo( void ) { return aud_info; }
-
-
-        //discard audio data, resets values,
-        //but, instead of clear() which frees memory,
-        //reset the memory to the initial size, ready
-        //for receiving "new" audio data.
-        void reset( void );
+        /* returns the float number of seconds that the buffer can record */
+        float fseconds_total(void) const
+        {
+            return (float)((float) buf_size / (float)aud_info.byte_rate());
+        }
 
+        /* returns the float number of seconds that has been recorded */
+        float fseconds_recorded(void) const
+        {
+            return (float)((float)bytes_received / (float)aud_info.byte_rate());
+        }
 
-        //truncates and discards unused memory.
-        //`buf_size' will be the same as `bytes_received'.
-        void truncate( void )
-        { truncate_( ); }//TODO: fare truncate N bytes
+        unsigned int total_samples(void) const
+        {
+            return (aud_info.samples_in_seconds(fseconds_total()));
+        }
 
+        unsigned int samples_received(void) const
+        {
+            return (aud_info.samples_in_bytes(bytes_received));
+        }
 
-        //if there is a buffer, discards current buffer
-        //memory and realloc a new memory buffer with a 
-        //new size expressed in bytes.
-        void alloc_bytes( unsigned int );
+        /* returns a pointer to the audio buffer */
+        BYTE * audio_buffer(void) const
+        {
+            return audio_data;
+        }
 
+        /* frees memory and resets values */
+        void clear(void);
 
+        audio_format & audinfo(void)
+        {
+            return aud_info;
+        }
 
-        //if there is a buffer, discards current buffer
-        //memory and realloc a new memory buffer with a 
-        //new size expressed in seconds, integer and float.
-        void alloc_seconds( unsigned int );
-        void alloc_seconds( float );
+        /* discard audio data, resets values, but, instead of clear() which
+           frees memory, reset the memory to the initial size, ready for
+           receiving "new" audio data. */
+        void reset(void);
 
+        /* truncates and discards unused memory. `buf_size' will be the same as `bytes_received' */
+        void truncate(void)
+        {
+            truncate_();
+        } /* TODO: fare truncate N bytes */
 
+        /* if there is a buffer, discards current buffer memory and realloc
+           a new memory buffer with a new size expressed in bytes. */
+        void alloc_bytes(unsigned int);
 
-        //resizes in bytes the current buffer, 
-        //without discarding previsiously audio data received.
-        void resize_bytes( unsigned int );
+        /* if there is a buffer, discards current buffer memory and realloc
+           a new memory buffer with a new size expressed in seconds, integer and float. */
+        void alloc_seconds(unsigned int);
+        void alloc_seconds(float);
 
+        /* resizes in bytes the current buffer, without discarding
+           previsiously audio data received */
+        void resize_bytes(unsigned int);
 
-        //resizes in seconds the current buffer, 
-        //without discarding previsiously audio data received.
+        /* resizes in seconds the current buffer, without discarding
+           previsiously audio data received */
         void resize_seconds( unsigned int );
         void resize_seconds( float );
 
+        /* Inherited Functions from `audio_receiver' */
+        void audio_receive(unsigned char *, unsigned int);
 
-
-
-
-
-
-        
-        
-        //
-        // Inherited Functions from `audio_receiver'
-        //
-
-        void audio_receive( unsigned char *, unsigned int );
-
-
-
-        
-        //
-        // Inherited Functions from `audio_buffer'
-        //
-
-
-        unsigned int read( BYTE *, unsigned int );
-        bool finished( void );
-        
-
-
+        /* Inherited Functions from `audio_buffer' */
+        unsigned int read(BYTE *, unsigned int);
+        bool finished(void);
 };
 
-
-
-
-
-
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-
-#endif //ifdef _AUDIOMEMBUFFER__H_
+#endif /* _AUDIOMEMBUFFER__H_ */
index 5490e27..0869674 100644 (file)
 #ifndef _AUDIOAUDBUF__H_
 #define _AUDIOAUDBUF__H_
 
-
-
 #include "audio_def.hpp"
-//#include "audio_producer.hpp"
-
-
-
-
-
 
 _AUDIO_NAMESPACE_START_
 
-
-
-
-
 class audio_producer
 {
-
-
     protected:
-        
-        
         unsigned int bytes_played_;
 
-
-
-
-
     public:
+        /* Ctors */
+        audio_producer() : bytes_played_(0), play_finished(0)
+        {
+        }
 
+        /* Dtor */
+        virtual ~audio_producer(void)
+        {
+        }
 
-        //
-        // Ctors
-        //
-
-        audio_producer ( ) : bytes_played_( 0 ), play_finished ( 0 )
-        {  }
-
-
-        
-
-
-
-
-
-        
-        //
-        // Dtor
-        //
-
-        virtual ~audio_producer( void )
-        {  }
-
-
-
-
-        //
-        // Public Functions
-        //
-
-
-        //reads N bytes from the buffer
-        virtual unsigned int read( BYTE *, unsigned int ) = 0;
-
-        virtual bool finished ( void ) = 0;
-
+        /* Public Functions */
 
+        /* reads N bytes from the buffer */
+        virtual unsigned int read(BYTE *, unsigned int) = 0;
 
+        virtual bool finished(void) = 0;
 
-        unsigned int bytes_played( void ) const
+        unsigned int bytes_played(void) const
         {
             return bytes_played_;
         }
 
-
-        void set_position( unsigned int pos )
+        void set_position(unsigned int pos)
         {
             bytes_played_ = pos;
         }
 
-        void set_position_start( void )
+        void set_position_start(void)
         {
-            bytes_played_ = 0 ;
+            bytes_played_ = 0;
         }
 
-
-
-        void forward( unsigned int bytes )
+        void forward(unsigned int bytes)
         {
-            bytes_played_ += bytes ;
+            bytes_played_ += bytes;
         }
 
-
-        void backward( unsigned int bytes )
+        void backward(unsigned int bytes)
         {
-            bytes_played_ += bytes ;
+            bytes_played_ += bytes;
         }
 
-        void ( * play_finished )( void );
-
-
-
-
+        void (* play_finished)(void);
 };
 
-
-
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-
-
-#endif //ifdef _AUDIOAUDBUF__H_
+#endif /* _AUDIOAUDBUF__H_ */
index 1d79aaf..505a6f9 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
 #ifndef _AUDIORECEIVER_DEF__H_
 #define _AUDIORECEIVER_DEF__H_
 
-
-
 #include "audio_def.hpp"
 
-
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
-
-
-
-
-
-
-
 class audio_receiver
 {
-
-        //
-        // The `audio_wavein' class, while is
-        // recording audio, has to access to 
-        // protected members of `audio_receiver'
-        // such as `bytes_received' protected
-        // variable.
-        //
-
-        friend class audio_wavein;
-
-
-
-
-
+    /* The `audio_wavein' class, while is recording audio, has to access to
+       protected members of `audio_receiver' such as `bytes_received'
+       protected variable */
+    friend class audio_wavein;
 
     protected:
-
-
         unsigned int bytes_received;
 
-
-
     public:
-        
-        
-        //
-        // Ctors
-        //
-
-        audio_receiver( void )
-            : bytes_received( 0 )
-        {  }
-
-
-
-
-
-        //
-        // Dtor
-        //
-
-        virtual ~audio_receiver( void )
-        {  }
-
-
-
-        
-        //
-        // Public Functions
-        //
+        /* Ctors */
+        audio_receiver(void) : bytes_received(0)
+        {
+        }
 
-        virtual void audio_receive( unsigned char *, unsigned int ) = 0;
-        
+        /* Dtor */
+        virtual ~audio_receiver(void)
+        {
+        }
 
+        /* Public Functions */
 
+        virtual void audio_receive(unsigned char *, unsigned int) = 0;
 
-        void set_b_received( unsigned int r )
-        { bytes_received = r; }
+        void set_b_received(unsigned int r)
+        {
+            bytes_received = r;
+        }
 };
 
-
-
-
-
-
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-
-
-
-#endif //ifdef _AUDIORECEIVER_DEF__H_
+#endif /* _AUDIORECEIVER_DEF__H_ */
index 32b7b4f..27a30b8 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
 #include "stdafx.h"
 #include "audio_resampler_acm.hpp"
-//#include <stdio.h>
-
-
 
 _AUDIO_NAMESPACE_START_
 
-
-/////////////////////////////////////////
-///////     Private Functions    ////////
-/////////////////////////////////////////
-
+/* Private Functions */
 
 void
-audio_resampler_acm::init_( void )
+audio_resampler_acm::init_(void)
 {
+    /* Zeroing structures */
+    ZeroMemory(&acm_header, sizeof(ACMSTREAMHEADER));
+    ZeroMemory(&wformat_src, sizeof(WAVEFORMATEX));
+    ZeroMemory(&wformat_dst, sizeof(WAVEFORMATEX));
 
+    /* Setting structures sizes */
+    acm_header.cbStruct = sizeof(ACMSTREAMHEADER);
+    wformat_src.cbSize = sizeof(WAVEFORMATEX);
+    wformat_dst.cbSize = sizeof(WAVEFORMATEX);
 
-
-    //
-    // Zeroing structures
-    //
-
-    ZeroMemory( &acm_header, sizeof( ACMSTREAMHEADER ));
-    ZeroMemory( &wformat_src, sizeof( WAVEFORMATEX ));
-    ZeroMemory( &wformat_dst, sizeof( WAVEFORMATEX ));
-
-
-    
-    
-    //
-    // Setting structures sizes
-    //
-
-    acm_header.cbStruct = sizeof( ACMSTREAMHEADER );
-    wformat_src.cbSize = sizeof( WAVEFORMATEX );
-    wformat_dst.cbSize = sizeof( WAVEFORMATEX );
-
-
-
-
-    //
-    // Setting WAVEFORMATEX structure parameters
-    // according to `audio_format' in/out classes
-    //
+    /* Setting WAVEFORMATEX structure parameters 
+       according to `audio_format' in/out classes */
 
     wformat_src.wFormatTag = WAVE_FORMAT_PCM;
     wformat_src.nSamplesPerSec = audfmt_in.sample_rate();
     wformat_src.nChannels = audfmt_in.channels();
     wformat_src.wBitsPerSample = audfmt_in.bits();
-    wformat_src.nAvgBytesPerSec =  audfmt_in.byte_rate();
+    wformat_src.nAvgBytesPerSec = audfmt_in.byte_rate();
     wformat_src.nBlockAlign = audfmt_in.block_align();
 
-
     wformat_dst.wFormatTag = WAVE_FORMAT_PCM;
     wformat_dst.nSamplesPerSec = audfmt_out.sample_rate();
     wformat_dst.nChannels = audfmt_out.channels();
     wformat_dst.wBitsPerSample = audfmt_out.bits();
-    wformat_dst.nAvgBytesPerSec =  audfmt_out.byte_rate();
+    wformat_dst.nAvgBytesPerSec = audfmt_out.byte_rate();
     wformat_dst.nBlockAlign = audfmt_out.block_align();
 
-
-
-    //
-    // Init acm structures completed successfull
-    //
+    /* Init acm structures completed successfull */
 }
 
-
-
-
-
-
-
-
-
-
-
-/////////////////////////////////////////
-///////     Public Functions     ////////
-/////////////////////////////////////////
-
-
-
+/* Public Functions */
 
 void
-audio_resampler_acm::open( void )
+audio_resampler_acm::open(void)
 {
-
-
     MMRESULT err;
 
+    /* Opens ACM stream */
+    err = acmStreamOpen(&acm_stream,
+                        0,
+                        &wformat_src,
+                        &wformat_dst,
+                        0, 0, 0,
+                        ACM_STREAMOPENF_NONREALTIME);
 
-    //
-    // Opens ACM stream
-    //
-
-    err = acmStreamOpen( &acm_stream, 0, &wformat_src, &wformat_dst, 
-                    0, 0, 0, ACM_STREAMOPENF_NONREALTIME );
-
-
-    if ( err != MMSYSERR_NOERROR )
+    if (err != MMSYSERR_NOERROR)
     {
-        //TODO: throw error
-        MessageBox( 0, _T("acmOpen error: %i"), _T("ERROR"), MB_ICONERROR );
-
+        /* TODO: throw error */
+        MessageBox(0, _T("acmOpen error: %i"), _T("ERROR"), MB_ICONERROR);
     }
 
+    /* Calcs source buffer length */
+    src_buflen = (unsigned int)((float)audfmt_in.byte_rate() * (float)buf_secs);
 
+    /* Calcs destination source buffer length with help of ACM apis */
+    err = acmStreamSize(acm_stream,
+                        src_buflen,
+                        &dst_buflen,
+                        ACM_STREAMSIZEF_SOURCE);
 
-    //
-    // Calcs source buffer length
-    //
-
-    src_buflen = ( unsigned int )
-        (( float )audfmt_in.byte_rate() * ( float )buf_secs );
-
-
-    
-    
-    
-    
-    //
-    // Calcs destination source buffer length
-    // with help of ACM apis
-    //
-
-    err = acmStreamSize( acm_stream, 
-        src_buflen, &dst_buflen, ACM_STREAMSIZEF_SOURCE );
-    
-
-    if ( err != MMSYSERR_NOERROR )
+    if (err != MMSYSERR_NOERROR)
     {
-        //TODO: throw error
-        MessageBox( 0, _T("acmStreamSize error"), _T("ERROR"), MB_ICONERROR );
-
-
+        /* TODO: throw error */
+        MessageBox(0, _T("acmStreamSize error"), _T("ERROR"), MB_ICONERROR);
     }
 
-
-
-    //
-    // Initialize ACMSTREAMHEADER structure,
-    // and alloc memory for source and destination
-    // buffers.
-    //
+    /* Initialize ACMSTREAMHEADER structure,
+       and alloc memory for source and destination buffers */
 
     acm_header.fdwStatus = 0;
     acm_header.dwUser = 0;
 
-    
-    acm_header.pbSrc = ( LPBYTE ) new BYTE [ src_buflen ];
+    acm_header.pbSrc = (LPBYTE) new BYTE[src_buflen];
     acm_header.cbSrcLength = src_buflen;
     acm_header.cbSrcLengthUsed = 0;
     acm_header.dwSrcUser = src_buflen;
 
-
-    acm_header.pbDst = ( LPBYTE ) new BYTE [ dst_buflen ];
+    acm_header.pbDst = (LPBYTE) new BYTE[dst_buflen];
     acm_header.cbDstLength = dst_buflen;
     acm_header.cbDstLengthUsed = 0;
     acm_header.dwDstUser = dst_buflen;
 
-
-
-
-    //
-    // Give ACMSTREAMHEADER initialized correctly to the
-    // driver.
-    //
-
-    err = acmStreamPrepareHeader( acm_stream, &acm_header, 0L );
-
-    if ( err != MMSYSERR_NOERROR )
+    /* Give ACMSTREAMHEADER initialized correctly to the driver */
+    err = acmStreamPrepareHeader(acm_stream, &acm_header, 0L);
+    if (err != MMSYSERR_NOERROR)
     {
-        //TODO: throw error
-        MessageBox( 0, _T("acmStreamPrepareHeader error"), _T("ERROR"), MB_ICONERROR );
-
-
+        /* TODO: throw error */
+        MessageBox(0, _T("acmStreamPrepareHeader error"), _T("ERROR"), MB_ICONERROR);
     }
 
-
-
-
-    //
-    // ACM stream successfully opened.
-    //
-
+    /* ACM stream successfully opened */
     stream_opened = true;
-
 }
 
-
-
-
 void
-audio_resampler_acm::close( void )
+audio_resampler_acm::close(void)
 {
-
-
     MMRESULT err;
 
-
-    if ( acm_stream )
+    if (acm_stream)
     {
-
-        if ( acm_header.fdwStatus & ACMSTREAMHEADER_STATUSF_PREPARED )
+        if (acm_header.fdwStatus & ACMSTREAMHEADER_STATUSF_PREPARED)
         {
-
             acm_header.cbSrcLength = src_buflen;
             acm_header.cbDstLength = dst_buflen;
 
-            err = acmStreamUnprepareHeader( acm_stream, &acm_header, 0L );
-
-        
-            if ( err != MMSYSERR_NOERROR )
+            err = acmStreamUnprepareHeader(acm_stream, &acm_header, 0L);
+            if (err != MMSYSERR_NOERROR)
             {
-            
-                //
-                // Free buffer memory
-                //
-
-                if ( acm_header.pbSrc != 0 )
+                /* Free buffer memory */
+                if (acm_header.pbSrc != 0)
                     delete[] acm_header.pbSrc;
 
-                if ( acm_header.pbDst != 0 )
+                if (acm_header.pbDst != 0)
                     delete[] acm_header.pbDst;
 
-
-                //
-                // Re-init structures
-                //
-
+                /* Re-init structures */
                 init_();
-
-                //
-                // Updating status
-                //
-
+                /* Updating status */
                 stream_opened = false;
-
-
-                //TODO: throw error
-                MessageBox( 0, _T("acmStreamUnPrepareHeader error"), _T("ERROR"), MB_ICONERROR );
-
-            
+                /* TODO: throw error */
+                MessageBox(0, _T("acmStreamUnPrepareHeader error"), _T("ERROR"), MB_ICONERROR);
             }
         }
 
-
-        err = acmStreamClose( acm_stream, 0 );
+        err = acmStreamClose(acm_stream, 0);
         acm_stream = 0;
 
-        if ( err != MMSYSERR_NOERROR )
+        if (err != MMSYSERR_NOERROR)
         {
-
-            //
-            // Free buffer memory
-            //
-
-            if ( acm_header.pbSrc != 0 )
+            /* Free buffer memory */
+            if (acm_header.pbSrc != 0)
                 delete[] acm_header.pbSrc;
 
-            if ( acm_header.pbDst != 0 )
+            if (acm_header.pbDst != 0)
                 delete[] acm_header.pbDst;
 
-
-            //
-            // Re-init structures
-            //
-
+            /* Re-init structures */
             init_();
-
-
-            //
-            // Updating status
-            //
-
+            /* Updating status */
             stream_opened = false;
-
-
-            //TODO: throw error!
-
-            MessageBox( 0, _T("acmStreamClose error"), _T("ERROR"), MB_ICONERROR );
-
-
+            /* TODO: throw error! */
+            MessageBox(0, _T("acmStreamClose error"), _T("ERROR"), MB_ICONERROR);
         }
 
+    } /* if acm_stream != 0 */
 
-    }//if acm_stream != 0
-
-
-
-
-
-
-    //
-    // Free buffer memory
-    //
-
-    if ( acm_header.pbSrc != 0 )
+    /* Free buffer memory */
+    if (acm_header.pbSrc != 0)
         delete[] acm_header.pbSrc;
 
-    if ( acm_header.pbDst != 0 )
+    if (acm_header.pbDst != 0)
         delete[] acm_header.pbDst;
 
-
-    //
-    // Re-init structures
-    //
-
+    /* Re-init structures */
     init_();
-
-
-    //
-    // Updating status
-    //
-
+    /* Updating status */
     stream_opened = false;
 
-
-
-    //
-    // ACM sream successfully closed.
-    //
-
-
+    /* ACM sream successfully closed */
 }
 
-
-
-
 void 
-audio_resampler_acm::audio_receive( unsigned char * data, unsigned int size )
+audio_resampler_acm::audio_receive(unsigned char *data, unsigned int size)
 {
-
     MMRESULT err;
 
-    //
-    // Checking for acm stream opened
-    //
-
-    if ( stream_opened )
+    /* Checking for acm stream opened */
+    if (stream_opened)
     {
-
-        
-        //
-        // Copy audio data from extern to
-        // internal source buffer
-        //
-
-        memcpy( acm_header.pbSrc, data, size );
-
+        /* Copy audio data from extern to internal source buffer */
+        memcpy(acm_header.pbSrc, data, size);
 
         acm_header.cbSrcLength = size;
         acm_header.cbDstLengthUsed = 0;
 
-        err = acmStreamConvert( acm_stream, &acm_header, ACM_STREAMCONVERTF_BLOCKALIGN );
+        err = acmStreamConvert(acm_stream, &acm_header, ACM_STREAMCONVERTF_BLOCKALIGN);
 
-        if ( err != MMSYSERR_NOERROR )
+        if (err != MMSYSERR_NOERROR)
         {
-            //TODO: throw error
-            MessageBox( 0, _T("acmStreamConvert error"), _T("ERROR"), MB_ICONERROR );
-
-
+            /* TODO: throw error */
+            MessageBox(0, _T("acmStreamConvert error"), _T("ERROR"), MB_ICONERROR);
         }
 
+        /* Wait for sound conversion */
+        while ((ACMSTREAMHEADER_STATUSF_DONE & acm_header.fdwStatus) == 0);
 
-        //
-        // Wait for sound conversion
-        //
-
-        while(( ACMSTREAMHEADER_STATUSF_DONE & acm_header.fdwStatus ) == 0 );
-    
-
-        
-
-
-        //
-        // Copy resampled audio, to destination buffer.
-        //
-
-        //memcpy( pbOutputData, acm_header.pbDst, acm_header.cbDstLengthUsed );
-
-
+        /* Copy resampled audio, to destination buffer */
+        //memcpy(pbOutputData, acm_header.pbDst, acm_header.cbDstLengthUsed);
     }
-
 }
 
-
-
-
-
-
-
-
-
-
 _AUDIO_NAMESPACE_END_
index d68d1e2..8e5d8e3 100644 (file)
@@ -5,34 +5,21 @@
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
 #ifndef _AUDIORESAMPLERACM__H_
 #define _AUDIORESAMPLERACM__H_
 
-
-
-//#include "audio_def.hpp"
 #include "audio_receiver.hpp"
 #include "audio_format.hpp"
 
-
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
-//TODO: inherit from a base resampler?
+/* TODO: inherit from a base resampler? */
 class audio_resampler_acm : public audio_receiver
 {
-
     private:
-        void init_( void );
-
+        void init_(void);
 
     protected:
-
-
         HACMSTREAM acm_stream;
         ACMSTREAMHEADER acm_header;
         DWORD src_buflen;
@@ -47,61 +34,31 @@ class audio_resampler_acm : public audio_receiver
         WAVEFORMATEX wformat_src;
         WAVEFORMATEX wformat_dst;
 
-
-
-
     public:
-
-
-        //
-        // Ctors
-        //
-
-        audio_resampler_acm( audio_format fmt_in, audio_format fmt_out )
-            : acm_stream( 0 ), src_buflen( 0 ), dst_buflen( 0 ),
-            stream_opened( false ), audfmt_in( fmt_in ), audfmt_out( fmt_out ),
-            buf_secs( _AUDIO_DEFAULT_BUFSECS )
-
-        {   
-        
-
+        /* Ctors */
+        audio_resampler_acm(audio_format fmt_in,
+                            audio_format fmt_out) : acm_stream(0),
+                                                    src_buflen(0),
+                                                    dst_buflen(0),
+                                                    stream_opened(false),
+                                                    audfmt_in(fmt_in),
+                                                    audfmt_out(fmt_out),
+                                                    buf_secs(_AUDIO_DEFAULT_BUFSECS)
+        {
             init_();
-        
-        
         }
 
+        /* Dtor */
+        ~audio_resampler_acm(void)
+        {
+        }
 
-
-        
-        
-        //
-        // Dtor
-        //
-
-        ~audio_resampler_acm( void )
-        {   }
-
-
-
-        //
-        // Public functions
-        //
-
-        void open( void );
-        void close( void );
-
-
-
-        void audio_receive( unsigned char *, unsigned int );
-
-
-
+        /* Public functions */
+        void open(void);
+        void close(void);
+        void audio_receive(unsigned char *, unsigned int);
 };
 
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-#endif //ifdef _AUDIORESAMPLERACM_H_
+#endif /* _AUDIORESAMPLERACM__H_ */
index 00dc08a..5e5954e 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
 #include "stdafx.h"
 #include "audio_wavein.hpp"
 
-
-
 _AUDIO_NAMESPACE_START_
 
-
 void
-audio_wavein::init_( void )
+audio_wavein::init_(void)
 {
-    ZeroMemory(( LPVOID ) &wave_format, 
-                    sizeof( WAVEFORMATEX ));
-
-    wave_format.cbSize = sizeof( WAVEFORMATEX );
-
+    ZeroMemory((LPVOID)&wave_format, sizeof(WAVEFORMATEX));
+    wave_format.cbSize = sizeof(WAVEFORMATEX);
     wavein_handle = 0;
     recthread_id = 0;
     wakeup_recthread = 0;
-
     data_flushed_event = 0;
-
     buf_secs = _AUDIO_DEFAULT_WAVEINBUFSECS;
-
-
     status = WAVEIN_NOTREADY;
 }
 
-
 void
-audio_wavein::alloc_buffers_mem_( unsigned int buffs, float secs )
+audio_wavein::alloc_buffers_mem_(unsigned int buffs, float secs)
 {
+    unsigned int onebuf_size = 0, tot_size = 0;
 
-
-    unsigned int 
-        onebuf_size = 0, tot_size = 0;
-
-
-    //
-    // Release old memory
-    //
-
-    if ( main_buffer )
+    /* Release old memory */
+    if (main_buffer)
         delete[] main_buffer;
 
-
-    if ( wave_headers )
+    if (wave_headers)
         delete[] wave_headers;
 
-
-
-    //
-    // Calcs size of the buffers
-    //
-
-    onebuf_size = ( unsigned int )
-        (( float )aud_info.byte_rate() * secs ); 
-
-
+    /* Calcs size of the buffers */
+    onebuf_size = (unsigned int)((float)aud_info.byte_rate() * secs);
     tot_size = onebuf_size * buffs;
 
-    
-    
-    
-    //
-    // Allocs memory for the audio buffers
-    //
-
-    main_buffer = new BYTE [ tot_size ];
-
-
-
-    //
-    // Allocs memory for the `WAVEHDR' structures.
-    //
-
-    wave_headers = ( WAVEHDR * ) 
-        new BYTE [ sizeof( WAVEHDR ) * buffs ];
-
-
-
-    //
-    // Zeros memory.
-    //
-
-    ZeroMemory( main_buffer, tot_size );
-
-    ZeroMemory( wave_headers, 
-        sizeof( WAVEHDR ) * buffs );
-
-
-    //
-    // Updates total size of the buffers.
-    //
-
+    /* Allocs memory for the audio buffers */
+    main_buffer = new BYTE[tot_size];
+    /* Allocs memory for the `WAVEHDR' structures */
+    wave_headers = (WAVEHDR *)new BYTE[sizeof(WAVEHDR) * buffs];
+    /* Zeros memory */
+    ZeroMemory(main_buffer, tot_size);
+    ZeroMemory(wave_headers, sizeof(WAVEHDR) * buffs);
+    /* Updates total size of the buffers */
     mb_size = tot_size;
-
 }
 
-
 void 
-audio_wavein::free_buffers_mem_( void )
+audio_wavein::free_buffers_mem_(void)
 {
-
-
-    //
-    // Frees memory
-    //
-
-    if ( main_buffer )
+    /* Frees memory */
+    if (main_buffer)
         delete[] main_buffer;
 
 
-    if ( wave_headers )
+    if (wave_headers)
         delete[] wave_headers;
 
-
     main_buffer = 0;
     wave_headers = 0;
-
 }
 
-
 void 
-audio_wavein::init_headers_( void )
+audio_wavein::init_headers_(void)
 {
-
-
-
-    //
-    // If there is no memory for memory or
-    // headers, simply return.
-    //
-
-    if (( !wave_headers ) || ( !main_buffer ))
+    /* If there is no memory for memory or headers, simply return */
+    if ((!wave_headers) || (!main_buffer))
         return;
 
-
-    //
-    // This is the size for one buffer
-    //
-
+    /* This is the size for one buffer */
     DWORD buf_sz = mb_size / buffers;
-
-
-
-    //
-    // This is the base address for one buffer
-    //
-    
-    BYTE * buf_addr = main_buffer;
-
-
-    //
-    // Initializes headers.
-    //
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* This is the base address for one buffer */
+    BYTE *buf_addr = main_buffer;
+    /* Initializes headers */
+    for (unsigned int i = 0; i < buffers; ++i)
     {
-        wave_headers[ i ].dwBufferLength = mb_size / buffers;
-        wave_headers[ i ].lpData = ( LPSTR ) buf_addr;
-
+        wave_headers[i].dwBufferLength = mb_size / buffers;
+        wave_headers[i].lpData = (LPSTR)buf_addr;
         buf_addr += buf_sz;
     }
-
 }
 
-
 void 
-audio_wavein::prep_headers_( void )
+audio_wavein::prep_headers_(void)
 {
     MMRESULT err;
     bool error = false;
 
-
-    //
-    // If there is no memory for memory or
-    // headers, throw error.
-    //
-
-    if (( !wave_headers ) 
-        || ( !main_buffer ) || ( !wavein_handle ))
-    {} //TODO: throw error!
-
-
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* If there is no memory for memory or headers, throw error */
+    if ((!wave_headers) || (!main_buffer) || (!wavein_handle))
     {
-        err = waveInPrepareHeader( wavein_handle, 
-                    &wave_headers[ i ], sizeof( WAVEHDR ));
-
+        /* TODO: throw error! */
+    }
 
-        if ( err != MMSYSERR_NOERROR )
+    for (unsigned int i = 0; i < buffers; ++i)
+    {
+        err = waveInPrepareHeader(wavein_handle, &wave_headers[i], sizeof(WAVEHDR));
+        if (err != MMSYSERR_NOERROR)
             error = true;
-
     }
-    
-
-    if ( error )
-        MessageBox( 0, TEXT("waveInPrepareHeader Error."), 0, 0 );
-
-
 
+    if (error)
+        MessageBox(0, TEXT("waveInPrepareHeader Error."), 0, 0);
 }
 
 void 
-audio_wavein::unprep_headers_( void )
+audio_wavein::unprep_headers_(void)
 {
     MMRESULT err;
     bool error = false;
 
-
-
-    //
-    // If there is no memory for memory or
-    // headers, throw error.
-    //
-
-    if (( !wave_headers ) 
-        || ( !main_buffer ) || ( !wavein_handle ))
-    {} //TODO: throw error!
-
-
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* If there is no memory for memory or headers, throw error */
+    if ((!wave_headers) || (!main_buffer) || (!wavein_handle))
     {
-        err = waveInUnprepareHeader( wavein_handle, 
-                    &wave_headers[ i ], sizeof( WAVEHDR ));
-
+        /* TODO: throw error! */
+    }
 
-        if ( err != MMSYSERR_NOERROR )
+    for (unsigned int i = 0; i < buffers; ++i)
+    {
+        err = waveInUnprepareHeader(wavein_handle, &wave_headers[i], sizeof(WAVEHDR));
+        if (err != MMSYSERR_NOERROR)
             error = true;
-
     }
-    
-
-    if ( error )
-        MessageBox( 0, TEXT("waveInUnPrepareHeader Error."), 0, 0 );
 
+    if (error)
+        MessageBox(0, TEXT("waveInUnPrepareHeader Error."), 0, 0);
 }
 
-
 void 
-audio_wavein::add_buffers_to_driver_( void )
+audio_wavein::add_buffers_to_driver_(void)
 {
     MMRESULT err;
     bool error = false;
 
-
-
-    //
-    // If there is no memory for memory or
-    // headers, throw error.
-    //
-
-    if (( !wave_headers ) 
-        || ( !main_buffer ) || ( !wavein_handle ))
-    {} //TODO: throw error!
-
-
-
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* If there is no memory for memory or headers, throw error */
+    if ((!wave_headers) || (!main_buffer) || (!wavein_handle))
     {
-        err = waveInAddBuffer( wavein_handle, 
-                &wave_headers[ i ], sizeof( WAVEHDR ));
-
+        /* TODO: throw error! */
+    }
 
-        if ( err != MMSYSERR_NOERROR )
+    for (unsigned int i = 0; i < buffers; ++i)
+    {
+        err = waveInAddBuffer(wavein_handle, &wave_headers[i], sizeof(WAVEHDR));
+        if (err != MMSYSERR_NOERROR)
             error = true;
-
     }
-    
-
-    if ( error )
-        MessageBox( 0, TEXT("waveInAddBuffer Error."), 0, 0 );
 
+    if (error)
+        MessageBox(0, TEXT("waveInAddBuffer Error."), 0, 0);
 }
 
-
-
 void
-audio_wavein::close( void 
+audio_wavein::close(void
 {
-
-
-
-
-    //
-    // If wavein object is already in the status
-    // NOTREADY, nothing to do. 
-    //
-
-    if ( status == WAVEIN_NOTREADY )
+    /* If wavein object is already in the status NOTREADY, nothing to do */
+    if (status == WAVEIN_NOTREADY)
         return;
 
-
-
-    //
-    // If the wavein is recording,
-    // then stop recording and close it.
-    //
-    
-    if ( status == WAVEIN_RECORDING )
+    /* If the wavein is recording, then stop recording and close it */
+    if (status == WAVEIN_RECORDING)
         stop_recording();
 
-
-    //
-    // Updating status.
-    //
-
+    /* Updating status */
     status = WAVEIN_NOTREADY;
 
+    /* Wakeing up recording thread, so it can receive
+       the `MM_WIM_CLOSE' message then dies */
+    if (wakeup_recthread)
+        SetEvent(wakeup_recthread);
 
+    /* Closing wavein stream */
+    while ((waveInClose(wavein_handle)) != MMSYSERR_NOERROR)
+        Sleep(1);
 
-
-    //
-    // Wakeing up recording thread, so it
-    // can receive the `MM_WIM_CLOSE' message
-    // then dies.
-    //
-    if ( wakeup_recthread )
-        SetEvent( wakeup_recthread );
-
-
-
-    //
-    // Closing wavein stream
-    //
-
-    while (( waveInClose( wavein_handle )) 
-                    != MMSYSERR_NOERROR ) Sleep( 1 );
-
-
-
-    //
-    // Release buffers memory.
-    //
-
+    /* Release buffers memory */
     free_buffers_mem_();
 
-
-    //
-    // Re-initialize variables to the
-    // initial state.
-    //
-
+    /* Re-initialize variables to the initial state */
     init_();
-    
 }
 
-
 void
-audio_wavein::open( void )
+audio_wavein::open(void)
 {
-
     MMRESULT err;
     HANDLE recthread_handle = 0;
 
+    /* Checkin the status of the object */
+    if (status != WAVEIN_NOTREADY)
+    {
+        /* TODO: throw error */
+    }
 
-    //
-    // Checkin the status of the object
-    //
-
-    if ( status != WAVEIN_NOTREADY )
-    {} //TODO: throw error
-
-
-
-    //
-    // Creating the EVENT object that will be signaled
-    // when the recording thread has to wake up.
-    //
-
-    wakeup_recthread = 
-        CreateEvent( 0, FALSE, FALSE, 0 );
-
-
-    data_flushed_event = 
-        CreateEvent( 0, FALSE, FALSE, 0 );
-
+    /* Creating the EVENT object that will be signaled
+       when the recording thread has to wake up */
+    wakeup_recthread = CreateEvent(0, FALSE, FALSE, 0);
 
+    data_flushed_event = CreateEvent(0, FALSE, FALSE, 0);
 
-    if (( !wakeup_recthread ) || ( !data_flushed_event ))
+    if ((!wakeup_recthread) || (!data_flushed_event))
     {
-
-
         status = WAVEIN_ERR;
-
-        MessageBox( 0, TEXT("Thread Error."), 0, 0 );
-
-        //TODO: throw error
+        MessageBox(0, TEXT("Thread Error."), 0, 0);
+        /* TODO: throw error */
     }
 
-
-
-    //
-    // Inialize buffers for recording audio 
-    // data from the wavein audio line.
-    //
-
-    alloc_buffers_mem_( buffers, buf_secs );
+    /* Inialize buffers for recording audio data from the wavein audio line */
+    alloc_buffers_mem_(buffers, buf_secs);
     init_headers_();
 
-
-
-
-
-
-    //
-    // Sound format that will be captured by wavein
-    //
-
+    /* Sound format that will be captured by wavein */
     wave_format.wFormatTag = WAVE_FORMAT_PCM;
-
     wave_format.nChannels = aud_info.channels();
     wave_format.nSamplesPerSec = aud_info.sample_rate();
     wave_format.wBitsPerSample = aud_info.bits();
     wave_format.nBlockAlign = aud_info.block_align();
     wave_format.nAvgBytesPerSec = aud_info.byte_rate();
 
-
-
-    //
-    // Creating the recording thread
-    //
-
-    recthread_handle = 
-        CreateThread( NULL, 
-                      0, 
-                      audio_wavein::recording_procedure, 
-                      ( PVOID ) this, 
-                      0, 
-                      &recthread_id 
-            );
-
-    
-
-    //
-    // Checking thread handle
-    //
-
-    if ( !recthread_handle )
+    /* Creating the recording thread */
+    recthread_handle = CreateThread(NULL,
+                                    0,
+                                    audio_wavein::recording_procedure,
+                                    (PVOID)this,
+                                    0,
+                                    &recthread_id);
+    /* Checking thread handle */
+    if (!recthread_handle)
     {
-
-        //
-        // Updating status
-        //
-
+        /* Updating status */
         status = WAVEIN_ERR;
-
-        MessageBox( 0, TEXT("Thread Error."), 0, 0 );
-        //TODO: throw error
-
+        MessageBox(0, TEXT("Thread Error."), 0, 0);
+        /* TODO: throw error */
     }
 
+    /* We don't need the thread handle anymore, so we can close it from now.
+       (We'll just need the thread ID for the `waveInOpen' API) */
+    CloseHandle(recthread_handle);
 
-    //
-    // We don't need the thread handle anymore,
-    // so we can close it from now. (We'll just
-    // need the thread ID for the `waveInOpen' API)
-    //
-
-    CloseHandle( recthread_handle );
-
+    /* Opening audio line wavein */
+    err = waveInOpen(&wavein_handle,
+                     0,
+                     &wave_format,
+                     recthread_id,
+                     0,
+                     CALLBACK_THREAD);
 
-
-    //
-    // Opening audio line wavein
-    //
-
-    err = waveInOpen( &wavein_handle, 
-                      0, 
-                      &wave_format, 
-                      recthread_id, 
-                      0, 
-                      CALLBACK_THREAD 
-            );
-
-
-    if ( err != MMSYSERR_NOERROR ) 
+    if (err != MMSYSERR_NOERROR)
     {
-
-
-        //
-        // Updating status
-        //
-
+        /* Updating status */
         status = WAVEIN_ERR;
 
-        if ( err == WAVERR_BADFORMAT )
-            MessageBox( 0, TEXT("waveInOpen Error"), 0, 0 );
-
+        if (err == WAVERR_BADFORMAT)
+            MessageBox(0, TEXT("waveInOpen Error"), 0, 0);
 
-        //TODO: throw error
+        /* TODO: throw error */
     }
 
-
-    //
-    // Update object status
-    //
-
+    /* Update object status */
     status = WAVEIN_READY;
 
-
-
-    //
-    // Now `audio_wavein' object is ready
-    // for audio recording!
-    //
+    /* Now `audio_wavein' object is ready for audio recording! */
 }
 
-
-
 void
-audio_wavein::start_recording( void )
+audio_wavein::start_recording(void)
 {
-
     MMRESULT err;
     BOOL ev;
 
+    if ((status != WAVEIN_READY) && (status != WAVEIN_STOP))
+    {
+        /* TODO: throw error */
+    }
 
-
-    if (( status != WAVEIN_READY ) 
-                && ( status != WAVEIN_STOP ))
-    {} //TODO: throw error
-
-
-
-
-    //
-    // Updating to the recording status
-    //
-
+    /* Updating to the recording status */
     status = WAVEIN_RECORDING;
 
-
-
-
-    //
-    // Let's prepare header of type WAVEHDR that
-    // we will pass to the driver with our
-    // audio informations, and buffer informations.
-    //
-    
+    /* Let's prepare header of type WAVEHDR that we will pass to the driver
+       with our audio informations, and buffer informations */
     prep_headers_();
 
-
-
-    //
-    // The waveInAddBuffer function sends an input buffer 
-    // to the given waveform-audio input device. 
-    // When the buffer is filled, the application is notified.
-    //
-
+    /* The waveInAddBuffer function sends an input buffer to the given waveform-audio
+       input device. When the buffer is filled, the application is notified. */
     add_buffers_to_driver_();
 
+    /* Signaling event for waking up the recorder thread */
+    ev = SetEvent(wakeup_recthread);
+    if (!ev)
+        MessageBox(0, TEXT("Event Error."), 0, 0);
 
-
-
-
-    //
-    // Signaling event for waking up
-    // the recorder thread.
-    //
-    
-    ev = SetEvent( wakeup_recthread );
-
-
-    if ( !ev ) 
+    /* Start recording */
+    err = waveInStart(wavein_handle);
+    if (err != MMSYSERR_NOERROR)
     {
-
-
-        MessageBox( 0, TEXT("Event Error."), 0, 0 );
-
-    }
-    
-
-    //
-    // Start recording
-    //
-
-    
-    err = waveInStart( wavein_handle );
-
-
-    if ( err != MMSYSERR_NOERROR )
-    {
-
-        //
-        // Updating status
-        //
-
+        /* Updating status */
         status = WAVEIN_ERR;
-
-        MessageBox( 0, TEXT("waveInStart Error."), 0, 0 );
-
-
-        //TODO: throw error
-
+        MessageBox(0, TEXT("waveInStart Error."), 0, 0);
+        /* TODO: throw error */
     }
-
 }
 
-
-
 void
-audio_wavein::stop_recording( void )
+audio_wavein::stop_recording(void)
 {
-        
-
     MMRESULT err;
 
-    if ( status != WAVEIN_RECORDING )
+    if (status != WAVEIN_RECORDING)
         return;
 
-
-    
     status = WAVEIN_FLUSHING;
 
-
-    //
-    // waveInReset will make all pending buffer as done.
-    //
-
-    err = waveInReset( wavein_handle );
-
-
+    /* waveInReset will make all pending buffer as done */
+    err = waveInReset(wavein_handle);
     if ( err != MMSYSERR_NOERROR )
     {
-
-        //TODO: throw error
-
-        MessageBox( 0, TEXT("waveInReset Error."), 0, 0 );
-
-
-
+        /* TODO: throw error */
+        MessageBox(0, TEXT("waveInReset Error."), 0, 0);
     }
 
-
-    if ( data_flushed_event )
+    if (data_flushed_event)
         WaitForSingleObject(data_flushed_event, INFINITE);
 
-
-
-    
-
-
-    
-    //
-    // Stop recording.
-    //
-
-    err = waveInStop( wavein_handle );
-
-
-    if ( err != MMSYSERR_NOERROR )
+    /* Stop recording */
+    err = waveInStop(wavein_handle);
+    if (err != MMSYSERR_NOERROR)
     {
-
-        //TODO: throw error
-
-        MessageBox( 0, TEXT("waveInStop Error."), 0, 0 );
-
-
-
+        /* TODO: throw error */
+        MessageBox(0, TEXT("waveInStop Error."), 0, 0);
     }
 
-
-    //
-    // The waveInUnprepareHeader function cleans up the 
-    // preparation performed by the waveInPrepareHeader function. 
-    //
-
+    /* The waveInUnprepareHeader function cleans up the preparation performed
+       by the waveInPrepareHeader function */
     unprep_headers_();
 
-
-
-
-
-    
-
-
-
-
-
     status = WAVEIN_STOP;
-
 }
 
-
-
 DWORD WINAPI 
-audio_wavein::recording_procedure( LPVOID arg )
+audio_wavein::recording_procedure(LPVOID arg)
 {
-
-
     MSG msg;
-    WAVEHDR * phdr;
-    audio_wavein * _this = ( audio_wavein * ) arg;
-
-    
-
-
-    //
-    // Check the arg pointer
-    //
+    WAVEHDR *phdr;
+    audio_wavein *_this = (audio_wavein *)arg;
 
-    if ( _this == 0 )
+    /* Check the arg pointer */
+    if (_this == 0)
         return 0;
 
-    
-    
-    //
-    // The thread can go to sleep for now.
-    // It will be wake up only when there is audio data
-    // to be recorded.
-    //
-
-    if ( _this->wakeup_recthread )
+    /* The thread can go to sleep for now. It will be wake up only when
+       there is audio data to be recorded */
+    if (_this->wakeup_recthread)
         WaitForSingleObject(_this->wakeup_recthread, INFINITE);
 
-
-
-
-
-    
-    //
-    // If status of the `audio_wavein' object 
-    // is not ready or recording the thread can exit.
-    //
-
-    if (( _this->status != WAVEIN_READY ) && 
-                ( _this->status != WAVEIN_RECORDING ))
+    /* If status of the `audio_wavein' object is not ready or recording the thread can exit */
+    if ((_this->status != WAVEIN_READY) && (_this->status != WAVEIN_RECORDING))
         return 0;
 
-
-    
-
-
-
-
-    //
-    // Entering main polling loop
-    //
-
-    while ( GetMessage( &msg, 0, 0, 0 ))       
-    {  
-
-        switch ( msg.message )
+    /* Entering main polling loop */
+    while (GetMessage(&msg, 0, 0, 0))
+    {
+        switch (msg.message)
         {
-                
             case MM_WIM_DATA:
-            
-                phdr = ( WAVEHDR * ) msg.lParam;
+                phdr = (WAVEHDR *)msg.lParam;
 
-                if (( _this->status == WAVEIN_RECORDING ) 
-                            || ( _this->status == WAVEIN_FLUSHING ))
+                if ((_this->status == WAVEIN_RECORDING) ||
+                    (_this->status == WAVEIN_FLUSHING))
                 {
-
-
-                    if ( phdr->dwFlags & WHDR_DONE )
+                    if (phdr->dwFlags & WHDR_DONE)
                     {
+                        /* Flushes recorded audio data to the `audio_receiver' object */
+                        _this->audio_rcvd.audio_receive((unsigned char *)phdr->lpData,
+                                                        phdr->dwBytesRecorded);
 
-                        //
-                        // Flushes recorded audio data to 
-                        // the `audio_receiver' object.
-                        //
-
-                        _this->audio_rcvd.audio_receive(
-                                ( unsigned char * )phdr->lpData, 
-                                phdr->dwBytesRecorded 
-                            );
-
-                        
-                        //
-                        // Updating `audio_receiver' total
-                        // bytes received _AFTER_ calling
-                        // `audio_receive' function.
-                        //
-
-                        _this->audio_rcvd.bytes_received += 
-                                        phdr->dwBytesRecorded;
+                        /* Updating `audio_receiver' total bytes received
+                           _AFTER_ calling `audio_receive' function */
+                        _this->audio_rcvd.bytes_received += phdr->dwBytesRecorded;
                     }
-    
-
-                            
-                    //
-                    // If status is not flushing data, then
-                    // we can re-add the buffer for reusing it.
-                    // Otherwise, if we are flushing pending data,
-                    // we cannot re-add buffer because we don't need
-                    // it anymore
-                    //
-
-                    if ( _this->status != WAVEIN_FLUSHING )
-                    {
-
-                        //
-                        // Let the audio driver reuse the buffer
-                        //
-
-                        waveInAddBuffer( _this->wavein_handle, 
-                                            phdr, sizeof( WAVEHDR ));
-
 
+                    /* If status is not flushing data, then we can re-add the buffer
+                       for reusing it. Otherwise, if we are flushing pending data,
+                       we cannot re-add buffer because we don't need it anymore */
+                    if (_this->status != WAVEIN_FLUSHING)
+                    {
+                        /* Let the audio driver reuse the buffer */
+                        waveInAddBuffer(_this->wavein_handle, phdr, sizeof(WAVEHDR));
                     } else {
-
-                        //
-                        // If we are flushing pending data, we have
-                        // to prepare to stop recording.
-                        // Set WAVEHDR flag to 0, and fires the event
-                        // `data_flushed_event', that will wake up
-                        // the main thread that is sleeping into
-                        // wavein_in::stop_recording() member function,
-                        // waiting the last `MM_WIM_DATA' message that
-                        // contain pending data.
-                        //
+                        /* If we are flushing pending data, we have to prepare
+                           to stop recording. Set WAVEHDR flag to 0, and fires
+                           the event `data_flushed_event', that will wake up
+                           the main thread that is sleeping into wavein_in::stop_recording()
+                           member function, waiting the last `MM_WIM_DATA' message
+                           that contain pending data */
 
                         phdr->dwFlags = 0;
+                        SetEvent(_this->data_flushed_event);
 
-                        SetEvent( _this->data_flushed_event );
-
-
-                        //
-                        // The recording is gooing to stop, so the
-                        // recording thread can go to sleep!
-                        //
-
+                        /* The recording is gooing to stop, so the recording thread can go to sleep! */
                         WaitForSingleObject(_this->wakeup_recthread, INFINITE);
-
                     }
-
-
-                }//if WAVEIN_RECORDING || WAVEIN_FLUSHING
-
+                } /* if WAVEIN_RECORDING || WAVEIN_FLUSHING */
                 break;
 
-
-            
-
-                        
-
-
-
-
             case MM_WIM_CLOSE:
-
-                //
-                // The thread can exit now.
-                //
-
+                /* The thread can exit now */
                 return 0;
-
                 break;
+        } /* end switch(msg.message) */
+    } /* end while(GetMessage(...)) */
 
-
-
-        }  //end switch( msg.message )
-        
-    }  //end while( GetMessage( ... ))
-
-    return 0;                          
+    return 0;
 }
 
-
-
-
-
-
 _AUDIO_NAMESPACE_END_
index 6ec0879..0810649 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
 #ifndef _AUDIOWAVEIN_H_
 #define _AUDIOWAVEIN_H_
 
-
-
-//#include "audio_def.hpp"
 #include "audio_format.hpp"
 #include "audio_receiver.hpp"
 
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
-
-enum audio_wavein_status { WAVEIN_NOTREADY, WAVEIN_READY, 
-                           WAVEIN_RECORDING, WAVEIN_ERR,
-                           WAVEIN_STOP, WAVEIN_FLUSHING
-                        
-                          };
-
-
-
-
+enum audio_wavein_status
+{
+    WAVEIN_NOTREADY,
+    WAVEIN_READY,
+    WAVEIN_RECORDING,
+    WAVEIN_ERR,
+    WAVEIN_STOP,
+    WAVEIN_FLUSHING
+};
 
 class audio_wavein
 {
     private:
+        /* The new recording thread sends message to this procedure
+           about open recording, close, and sound data recorded */
+        static DWORD WINAPI recording_procedure(LPVOID);
 
-
-
-        //
-        // The new recording thread sends message to this procedure
-        // about open recording, close, and sound data recorded
-        //
-
-        static DWORD WINAPI recording_procedure( LPVOID );
-
-        //
-        // When this event is signaled, then the previsiously created
-        // recording thread will wake up and start recording audio
-        // and will pass audio data to an `audio_receiver' object.
-        //
-
+        /* When this event is signaled, then the previsiously created
+           recording thread will wake up and start recording audio
+           and will pass audio data to an `audio_receiver' object. */
         HANDLE wakeup_recthread;
         HANDLE data_flushed_event;
 
-
-
-
     protected:
+        /* TODO: puts these structs in private?! */
 
-
-//TODO: puts these structs in private?!
-
-
-
-
-        //
-        // Audio wavein device stuff
-        //
-
-        WAVEFORMATEX   wave_format;
-        WAVEHDR        * wave_headers;
-        HWAVEIN        wavein_handle;
-
-
-
-    
+        /* Audio wavein device stuff */
+        WAVEFORMATEX wave_format;
+        WAVEHDR *wave_headers;
+        HWAVEIN wavein_handle;
 
         audio_format aud_info;
-        
-        audio_receiver & audio_rcvd;
-
-
-        
-        //
-        // Audio Recorder Thread id
-        //
-
-        DWORD     recthread_id;
+        audio_receiver &audio_rcvd;
 
+        /* Audio Recorder Thread id */
+        DWORD recthread_id;
 
-        
-
-        //
-        // Object status
-        //
-
+        /* Object status */
         audio_wavein_status status;
 
-
-
-
-
-
-
-        //
-        // How many seconds of audio
-        // can record the internal buffer
-        // before flushing audio data 
-        // to the `audio_receiver' class?
-        //
-
+        /* How many seconds of audio can record the internal buffer before
+           flushing audio data to the `audio_receiver' class? */
         float buf_secs;
 
-
-        //
-        // The temporary buffers for the audio
-        // data incoming from the wavein device
-        // and its size, and its total number.
-        //
-
-        BYTE * main_buffer;
+        /* The temporary buffers for the audio data incoming from the wavein
+           device and its size, and its total number */
+        BYTE *main_buffer;
         unsigned int mb_size;
-
         unsigned int buffers;
 
+        /* Protected Functions */
 
+        /* initialize all structures and variables */
+        void init_(void);
 
+        void alloc_buffers_mem_(unsigned int, float);
+        void free_buffers_mem_(void);
 
-
-        //
-        // Protected Functions
-        //
-
-
-        //initialize all structures and variables.
-        void init_( void );
-
-        void alloc_buffers_mem_( unsigned int, float );
-        void free_buffers_mem_( void );
-
-        void init_headers_( void );
-        void prep_headers_( void );
-        void unprep_headers_( void );
-        void add_buffers_to_driver_( void );
-
-
-
-
-
-
+        void init_headers_(void);
+        void prep_headers_(void);
+        void unprep_headers_(void);
+        void add_buffers_to_driver_(void);
 
     public:
-
-
-        //
-        // Ctors
-        //
-
-        audio_wavein(
-            const audio_format & a_info, audio_receiver & a_receiver )
-
-            : wave_headers( 0 ),
-            aud_info( a_info ), audio_rcvd( a_receiver ), 
-            status( WAVEIN_NOTREADY ), main_buffer( 0 ), mb_size( 0 ),
-            buffers( _AUDIO_DEFAULT_WAVEINBUFFERS )
+        /* Ctors */
+        audio_wavein(const audio_format &a_info,
+                     audio_receiver &a_receiver) : wave_headers(0),
+                                                   aud_info(a_info),
+                                                   audio_rcvd(a_receiver),
+                                                   status(WAVEIN_NOTREADY),
+                                                   main_buffer(0),
+                                                   mb_size(0),
+                                                   buffers(_AUDIO_DEFAULT_WAVEINBUFFERS)
         {
-
-            //
-            // Initializing internal wavein data
-            //
-            
-            
+            /* Initializing internal wavein data */
             init_();
-
             aud_info = a_info;
         }
 
-
-
-
-
-
-
-        //
-        // Dtor
-        //
-
-        ~audio_wavein( void )
+        /* Dtor */
+        ~audio_wavein(void)
         {
-            
             //close(); TODO!
-
         }
 
+        /* Public functions */
 
+        void open(void);
+        void close(void);
 
-        //
-        // Public functions
-        //
-
-        void open( void );
-        void close ( void );
-
-
-        void start_recording( void );
-        void stop_recording( void );
-
+        void start_recording(void);
+        void stop_recording(void);
 
-
-        audio_wavein_status current_status ( void ) const
+        audio_wavein_status current_status (void) const
         {
             return status;
         }
 
-        float buffer_secs( void ) const
-        { return buf_secs; }
-
-
-        void buffer_secs( float bsecs )
-        { 
-            //
-            // Some checking
-            //
+        float buffer_secs(void) const
+        {
+            return buf_secs;
+        }
 
-            if ( bsecs <= 0 )
+        void buffer_secs(float bsecs)
+        {
+            /* Some checking */
+            if (bsecs <= 0)
                 return;
 
-
-            //
-            // Set seconds length for each
-            // buffer.
-            //
-
+            /* Set seconds length for each buffer */
             buf_secs = bsecs; 
         }
 
-
-        unsigned int total_buffers( void ) const
-        { return buffers; }
-
-
-
-        void total_buffers( unsigned int tot_bufs )
+        unsigned int total_buffers(void) const
         {
+            return buffers;
+        }
 
-            //
-            // Some checking
-            //
-
-            if ( tot_bufs == 0 )
+        void total_buffers(unsigned int tot_bufs)
+        {
+            /* Some checking */
+            if (tot_bufs == 0)
                 return;
 
-            
-            //
-            // Sets the number of total buffers.
-            //
-
+            /* Sets the number of total buffers */
             buffers = tot_bufs;
         }
 
+        audio_format format(void) const
+        {
+            return aud_info;
+        }
 
-        audio_format format( void ) const
-        { return aud_info; }
-
-
-
-        
-        BYTE * buf( void ) { return main_buffer; }
-        unsigned int bufsz( void ) { return mb_size; }
-
+        BYTE *buf(void)
+        {
+            return main_buffer;
+        }
 
-        unsigned int samplevalue_max( void )
+        unsigned int bufsz(void)
         {
+            return mb_size;
+        }
 
-            if ( aud_info.bits() == 16 )
-                return (unsigned int )65535;
+        unsigned int samplevalue_max(void)
+        {
+            if (aud_info.bits() == 16)
+                return (unsigned int)65535;
 
-            else if ( aud_info.bits() == 8 )
+            else if (aud_info.bits() == 8)
                 return (unsigned int)255;
 
-            else 
+            else
                 return 0;
         }
 
-
-        unsigned tot_samples_buf( void )
+        unsigned tot_samples_buf(void)
         {
-
-
-            return aud_info.samples_in_bytes( mb_size );
-
-
+            return aud_info.samples_in_bytes(mb_size);
         }
 
-        unsigned int nsample ( unsigned int nsamp )
+        unsigned int nsample(unsigned int nsamp)
         {
-
-
             unsigned int svalue;
 
-
-
-            if ( aud_info.bits() == 16 )
-                svalue = ( unsigned int )  abs( *(( short * ) (main_buffer + aud_info.bytes_in_samples( nsamp ))));
-            else if ( aud_info.bits() == 8 )
-               svalue = (unsigned int)(( ptrdiff_t ) *(main_buffer + aud_info.bytes_in_samples( nsamp )));
-
+            if (aud_info.bits() == 16)
+                svalue = (unsigned int)abs(*((short *)(main_buffer + aud_info.bytes_in_samples(nsamp))));
+            else if (aud_info.bits() == 8)
+               svalue = (unsigned int)((ptrdiff_t) *(main_buffer + aud_info.bytes_in_samples(nsamp)));
             else 
                 svalue = 0;
 
             return svalue;
-
         }
-
-    
 };
 
-
-
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-#endif //ifdef _AUDIOWAVEIN_H_
+#endif /* _AUDIOWAVEIN_H_ */
index c49627d..0814e85 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
 #include "stdafx.h"
 #include "audio_waveout.hpp"
 
-
 _AUDIO_NAMESPACE_START_
 
-
-
 void
-audio_waveout::init_( void )
+audio_waveout::init_(void)
 {
-
-    ZeroMemory(( LPVOID ) &wave_format, 
-                    sizeof( WAVEFORMATEX ));
-
-    wave_format.cbSize = sizeof( WAVEFORMATEX );
-
+    ZeroMemory((LPVOID)&wave_format, sizeof(WAVEFORMATEX));
+    wave_format.cbSize = sizeof(WAVEFORMATEX);
     waveout_handle = 0;
-
     playthread_id = 0;
     wakeup_playthread = 0;
-
     buf_secs = _AUDIO_DEFAULT_WAVEOUTBUFSECS;
-
-
     status = WAVEOUT_NOTREADY;
-
 }
 
-
-
-
 void 
-audio_waveout::alloc_buffers_mem_( unsigned int buffs, float secs )
+audio_waveout::alloc_buffers_mem_(unsigned int buffs, float secs)
 {
+    unsigned int onebuf_size = 0, tot_size = 0;
 
-
-    unsigned int 
-        onebuf_size = 0, tot_size = 0;
-
-
-    //
-    // Release old memory
-    //
-
-    if ( main_buffer )
+    /* Release old memory */
+    if (main_buffer)
         delete[] main_buffer;
 
-
-    if ( wave_headers )
+    if (wave_headers)
         delete[] wave_headers;
 
-
-
-    //
-    // Calcs size of the buffers
-    //
-
-    onebuf_size = ( unsigned int )
-        (( float )aud_info.byte_rate() * secs ); 
-
-
+    /* Calcs size of the buffers */
+    onebuf_size = (unsigned int)((float)aud_info.byte_rate() * secs); 
     tot_size = onebuf_size * buffs;
-
-    
-    
-    
-    //
-    // Allocs memory for the audio buffers
-    //
-
-    main_buffer = new BYTE [ tot_size ];
-
-
-
-    //
-    // Allocs memory for the `WAVEHDR' structures.
-    //
-
-    wave_headers = ( WAVEHDR * ) 
-        new BYTE [ sizeof( WAVEHDR ) * buffs ];
-
-
-
-    //
-    // Zeros memory.
-    //
-
-    ZeroMemory( main_buffer, tot_size );
-
-    ZeroMemory( wave_headers, 
-        sizeof( WAVEHDR ) * buffs );
-
-
-    //
-    // Updates total size of the buffers.
-    //
-
+    /* Allocs memory for the audio buffers */
+    main_buffer = new BYTE[tot_size];
+    /* Allocs memory for the `WAVEHDR' structures */
+    wave_headers = (WAVEHDR *) new BYTE[sizeof(WAVEHDR) * buffs];
+    /* Zeros memory */
+    ZeroMemory(main_buffer, tot_size);
+    ZeroMemory(wave_headers, sizeof(WAVEHDR) * buffs);
+    /* Updates total size of the buffers */
     mb_size = tot_size;
 }
 
-
 void 
-audio_waveout::init_headers_( void )
+audio_waveout::init_headers_(void)
 {
-
-
-
-    //
-    // If there is no memory for memory or
-    // headers, simply return.
-    //
-
-    if (( !wave_headers ) || ( !main_buffer ))
+    /* If there is no memory for memory or headers, simply return */
+    if ((!wave_headers) || (!main_buffer))
         return;
 
-
-    //
-    // This is the size for one buffer
-    //
-
+    /* This is the size for one buffer */
     DWORD buf_sz = mb_size / buffers;
+    /* This is the base address for one buffer */
+    BYTE *buf_addr = main_buffer;
 
+    ZeroMemory(wave_headers, sizeof(WAVEHDR) * buffers);
 
-
-    //
-    // This is the base address for one buffer
-    //
-    
-    BYTE * buf_addr = main_buffer;
-
-
-
-    ZeroMemory( wave_headers, sizeof( WAVEHDR ) * buffers );
-
-
-    //
-    // Initializes headers.
-    //
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* Initializes headers */
+    for (unsigned int i = 0; i < buffers; ++i)
     {
-        
-        //
-        // Sets the correct base address and 
-        // length for the little buffer.
-        //
-
-        wave_headers[ i ].dwBufferLength = mb_size / buffers;
-        wave_headers[ i ].lpData = ( LPSTR ) buf_addr;
-
-        //
-        // Unsets the WHDR_DONE flag.
-        //
-
-        wave_headers[ i ].dwFlags &= ~WHDR_DONE;
+        /* Sets the correct base address and length for the little buffer */
+        wave_headers[i].dwBufferLength = mb_size / buffers;
+        wave_headers[i].lpData = (LPSTR) buf_addr;
 
+        /* Unsets the WHDR_DONE flag */
+        wave_headers[i].dwFlags &= ~WHDR_DONE;
 
-        
-        //
-        // Sets the WAVEHDR user data with an
-        // unique little buffer ID#
-        //
-
-        wave_headers[ i ].dwUser = ( unsigned int ) i;
-
-        
-        
-        //
-        // Increments little buffer base address.
-        //
+        /* Sets the WAVEHDR user data with an unique little buffer ID# */
+        wave_headers[i].dwUser = (unsigned int)i;
 
+        /* Increments little buffer base address */
         buf_addr += buf_sz;
     }
-
 }
 
-
 void 
-audio_waveout::prep_headers_( void )
+audio_waveout::prep_headers_(void)
 {
     MMRESULT err;
     bool error = false;
 
-
-    //
-    // If there is no memory for memory or
-    // headers, throw error.
-    //
-
-    if (( !wave_headers ) 
-        || ( !main_buffer ) || ( !waveout_handle ))
-    {} //TODO: throw error!
-
-
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* If there is no memory for memory or headers, throw error */
+    if ((!wave_headers) || (!main_buffer) || (!waveout_handle))
     {
-        err = waveOutPrepareHeader( waveout_handle, 
-                    &wave_headers[ i ], sizeof( WAVEHDR ));
-
+        /* TODO: throw error! */
+    }
 
-        if ( err != MMSYSERR_NOERROR )
+    for (unsigned int i = 0; i < buffers; ++i)
+    {
+        err = waveOutPrepareHeader(waveout_handle, &wave_headers[i], sizeof(WAVEHDR));
+        if (err != MMSYSERR_NOERROR)
             error = true;
-
     }
-    
-
-    if ( error )
-    {} //TODO: throw error indicating which
-      //header i-th is errorneous
-
-
 
+    if (error)
+    {
+        /* TODO: throw error indicating which header i-th is errorneous */
+    }
 }
 
 void 
-audio_waveout::unprep_headers_( void )
+audio_waveout::unprep_headers_(void)
 {
     MMRESULT err;
     bool error = false;
 
-
-
-    //
-    // If there is no memory for memory or
-    // headers, throw error.
-    //
-
-    if (( !wave_headers ) 
-        || ( !main_buffer ) || ( !waveout_handle ))
-    {} //TODO: throw error!
-
-
-
-    for ( unsigned int i = 0; i < buffers; ++i )
+    /* If there is no memory for memory or headers, throw error */
+    if ((!wave_headers) || (!main_buffer) || (!waveout_handle))
     {
-        err = waveOutUnprepareHeader( waveout_handle, 
-                    &wave_headers[ i ], sizeof( WAVEHDR ));
-
+        /* TODO: throw error! */
+    }
 
-        if ( err != MMSYSERR_NOERROR )
+    for (unsigned int i = 0; i < buffers; ++i)
+    {
+        err = waveOutUnprepareHeader(waveout_handle, &wave_headers[i], sizeof(WAVEHDR));
+        if (err != MMSYSERR_NOERROR)
             error = true;
-
     }
-    
-
-    if ( error )
-    {} //TODO: throw error indicating which
-      //header i-th is errorneous
 
+    if (error)
+    {
+        /* TODO: throw error indicating which header i-th is errorneous */
+    }
 }
 
-
-
-
-
-
-
-
-
 void 
-audio_waveout::free_buffers_mem_( void )
+audio_waveout::free_buffers_mem_(void)
 {
-
-
-
-    //
-    // Frees memory
-    //
-
-    if ( main_buffer )
+    /* Frees memory */
+    if (main_buffer)
         delete[] main_buffer;
 
-
-    if ( wave_headers )
+    if (wave_headers)
         delete[] wave_headers;
 
-
     main_buffer = 0;
     wave_headers = 0;
-
-
-
-
 }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 void 
-audio_waveout::open( void )
+audio_waveout::open(void)
 {
-
     MMRESULT err;
     HANDLE playthread_handle = 0;
 
-
-    //
-    // Checkin the status of the object
-    //
-
-    if ( status != WAVEOUT_NOTREADY )
-    {} //TODO: throw error
-
-
-    //
-    // Creating the EVENT object that will be signaled
-    // when the playing thread has to wake up.
-    //
-
-    wakeup_playthread = 
-        CreateEvent( 0, FALSE, FALSE, 0 );
-
-    if ( !wakeup_playthread )
+    /* Checkin the status of the object */
+    if (status != WAVEOUT_NOTREADY)
     {
+        /* TODO: throw error */
+    }
 
-
+    /* Creating the EVENT object that will be signaled when
+       the playing thread has to wake up */
+    wakeup_playthread = CreateEvent(0, FALSE, FALSE, 0);
+    if (!wakeup_playthread)
+    {
         status = WAVEOUT_ERR;
-
-        //TODO: throw error
+        /* TODO: throw error */
     }
 
-
-
-    //
-    // Inialize buffers for recording audio 
-    // data from the wavein audio line.
-    //
-
-    alloc_buffers_mem_( buffers, buf_secs );
+    /* Inialize buffers for recording audio data from the wavein audio line */
+    alloc_buffers_mem_(buffers, buf_secs);
     init_headers_();
 
-
-
-
-
-
-    //
-    // Sound format that will be captured by wavein
-    //
-
+    /* Sound format that will be captured by wavein */
     wave_format.wFormatTag = WAVE_FORMAT_PCM;
-
     wave_format.nChannels = aud_info.channels();
     wave_format.nSamplesPerSec = aud_info.sample_rate();
     wave_format.wBitsPerSample = aud_info.bits();
     wave_format.nBlockAlign = aud_info.block_align();
     wave_format.nAvgBytesPerSec = aud_info.byte_rate();
 
-
-
-    //
-    // Creating the recording thread
-    //
-
-    playthread_handle = 
-        CreateThread( NULL, 
-                      0, 
-                      audio_waveout::playing_procedure, 
-                      ( PVOID ) this, 
-                      0, 
-                      &playthread_id 
-            );
-
-    
-
-    //
-    // Checking thread handle
-    //
-
-    if ( !playthread_handle )
+    /* Creating the recording thread */
+    playthread_handle = CreateThread(NULL,
+                                     0,
+                                     audio_waveout::playing_procedure,
+                                     (PVOID)this,
+                                     0,
+                                     &playthread_id);
+    /* Checking thread handle */
+    if (!playthread_handle)
     {
-
-        //
-        // Updating status
-        //
-
-        status = WAVEOUT_ERR;          
-        //TODO: throw error
-
+        /* Updating status */
+        status = WAVEOUT_ERR;
+        /* TODO: throw error */
     }
 
+    /* We don't need the thread handle anymore, so we can close it from now.
+       (We'll just need the thread ID for the `waveInOpen' API) */
+    CloseHandle(playthread_handle);
 
-    //
-    // We don't need the thread handle anymore,
-    // so we can close it from now. (We'll just
-    // need the thread ID for the `waveInOpen' API)
-    //
-
-    CloseHandle( playthread_handle );
-
-
-
-    //
-    // Reset the `audio_source' to the start
-    // position.
-    //
-
+    /* Reset the `audio_source' to the start position */
     audio_buf.set_position_start();
-
-
-
-
-    //
-    // Opens the WAVE_OUT device.
-    //
-
-    err = waveOutOpen( 
-                &waveout_handle, 
-                WAVE_MAPPER, 
-                &wave_format, 
-                playthread_id, 
-                0, 
-                CALLBACK_THREAD | WAVE_ALLOWSYNC 
-            );
-
-
-
-    if ( err != MMSYSERR_NOERROR )
+    /* Opens the WAVE_OUT device */
+    err = waveOutOpen(&waveout_handle,
+                      WAVE_MAPPER,
+                      &wave_format,
+                      playthread_id,
+                      0,
+                      CALLBACK_THREAD | WAVE_ALLOWSYNC);
+    if (err != MMSYSERR_NOERROR)
     {
         MessageBox(0, _T("waveOutOpen Error"), 0, 0);
-        //TODO: throw error
-
+        /* TODO: throw error */
     }
 
-
-
-
     status = WAVEOUT_READY;
-
-
 }
 
-
-
 void 
-audio_waveout::play( void )
+audio_waveout::play(void)
 {
-
-
     MMRESULT err;
     unsigned int i;
 
-    if ( !main_buffer )
-    { return; } //TODO; throw error, or assert
-
-
-
-
-    //
-    // If the status is PAUSED, we have to
-    // resume the audio playing.
-    //
-    if ( status == WAVEOUT_PAUSED )
+    if (!main_buffer)
     {
+        /* TODO; throw error, or assert */
+        return;
+    }
 
-        //
-        // Updates status.
-        //
-
+    /* If the status is PAUSED, we have to resume the audio playing */
+    if (status == WAVEOUT_PAUSED)
+    {
+        /* Updates status */
         status = WAVEOUT_PLAYING;
-
-
-        //
-        // Tells to the driver to resume
-        // audio playing.
-        //
-
-        waveOutRestart( waveout_handle );
-        
-
-        //
-        // Wakeup playing thread.
-        //
-
-        SetEvent( wakeup_playthread );
-
+        /* Tells to the driver to resume audio playing */
+        waveOutRestart(waveout_handle);
+        /* Wakeup playing thread */
+        SetEvent(wakeup_playthread);
         return;
+    } /* if status == WAVEOUT_PAUSED */
 
-    } //if status == WAVEOUT_PAUSED
-
-
-
-
-
-    if ( status != WAVEOUT_READY ) 
+    if (status != WAVEOUT_READY)
         return;
-    
-
-
-
-    //
-    // Prepares WAVEHDR structures.
-    //
 
+    /* Prepares WAVEHDR structures */
     prep_headers_();
-
-
-
-    //
-    // Sets correct status.
-    //
-
+    /* Sets correct status */
     status = WAVEOUT_PLAYING;
-    
-    
-
-    //
-    // Reads the audio from the start.
-    //
-
+    /* Reads the audio from the start */
     //audio_buf.set_position_start();
 
-    
-
-    
-    //
-    // Reads the first N bytes from the audio
-    // buffer, where N = the total size of all
-    // little buffers.
-    //
-
-    audio_buf.read( main_buffer, mb_size );
-
-    
-
+    /* Reads the first N bytes from the audio buffer, where N = the total
+       size of all little buffers */
+    audio_buf.read(main_buffer, mb_size);
 
+    /* Wakeup the playing thread */
+    SetEvent(wakeup_playthread);
 
-    
-    //
-    // Wakeup the playing thread.
-    //
-
-    SetEvent( wakeup_playthread );
-
-
-
-
-    //
-    // Sends all the little buffers to the
-    // audio driver, so it can play the sound 
-    // data.
-    //
-
-    for ( i = 0; i < buffers; ++ i )
+    /* Sends all the little buffers to the audio driver, so it can play
+       the sound data */
+    for (i = 0; i < buffers; ++i)
     {
-
-        
-        err = waveOutWrite( waveout_handle, &wave_headers[ i ], sizeof( WAVEHDR ));
-
-        if ( err != MMSYSERR_NOERROR )
+        err = waveOutWrite(waveout_handle, &wave_headers[i], sizeof(WAVEHDR));
+        if (err != MMSYSERR_NOERROR)
         {
-        
-
             MessageBox(0, _T("waveOutWrite Error"), 0, 0);
-                                
-            //TODO: throw error
+            /* TODO: throw error */
         }
-
     }
-
 }
 
-
 void 
-audio_waveout::pause( void )
+audio_waveout::pause(void)
 {
-
     MMRESULT err;
 
-
-    //
-    // If the waveout object is not playing audio,
-    // do nothing.
-    //
-    
-    if ( status == WAVEOUT_PLAYING )
+    /* If the waveout object is not playing audio, do nothing */
+    if (status == WAVEOUT_PLAYING)
     {
-
-        //
-        // Updating status.
-        //
-
+        /* Updating status */
         status = WAVEOUT_PAUSED;
-
-
-        //
-        // Tells to audio driver to pause audio.
-        //
-
-        err = waveOutPause( waveout_handle );
-
-
-        if ( err != MMSYSERR_NOERROR )
+        /* Tells to audio driver to pause audio */
+        err = waveOutPause(waveout_handle);
+        if (err != MMSYSERR_NOERROR)
         {
-
             MessageBox(0, _T("waveOutPause Error"), 0, 0);
-            //TODO: throw error
-
+            /* TODO: throw error */
         }
-
     }
-
 }
 
-
 void 
-audio_waveout::stop( void )
+audio_waveout::stop(void)
 {
-
     MMRESULT err;
 
-
-    //
-    // Checks the current status
-    //
-
-    if (( status != WAVEOUT_PLAYING ) 
-            && ( status != WAVEOUT_FLUSHING )
-            && ( status != WAVEOUT_PAUSED ))
+    /* Checks the current status */
+    if ((status != WAVEOUT_PLAYING) &&
+        (status != WAVEOUT_FLUSHING) &&
+        (status != WAVEOUT_PAUSED))
     {
-        //
-        // Do nothing.
-        //
-
+        /* Do nothing */
         return;
-
     }
 
-
-
-    //
-    // Sets a new status
-    //
-
+    /* Sets a new status */
     status = WAVEOUT_STOP;
-
-
-
-    //
-    // Flushes pending audio datas
-    //
-
+    /* Flushes pending audio datas */
     err = waveOutReset( waveout_handle );
-
-
-
-    if ( err != MMSYSERR_NOERROR )
+    if (err != MMSYSERR_NOERROR)
     {
-
         MessageBox(0, _T("err WaveOutReset.\n"),_T("ERROR"), 0);
-        //TODO: throw error
-
+        /* TODO: throw error */
     }
 
-
-
-    //
-    // Sets the start position of the audio
-    // buffer.
-    //
-
+    /* Sets the start position of the audio buffer */
     audio_buf.set_position_start();
-
-
-    //
-    // Cleans little buffers.
-    //
-
+    /* Cleans little buffers */
     unprep_headers_();
     init_headers_();
-
-
-    
-    //
-    // Refreshes the status.
-    //
-
+    /* Refreshes the status */
     status = WAVEOUT_READY;
-
 }
 
 void
-audio_waveout::close( void )
+audio_waveout::close(void)
 {
-
     MMRESULT err;
 
-
-    //
-    // If the `wave_out' object is playing audio,
-    // or it is in paused state, we have to call
-    // the `stop' member function, to flush 
-    // pending buffers.
-    //
-    
-    if (( status == WAVEOUT_PLAYING ) 
-                    || ( status== WAVEOUT_PAUSED ))
+    /* If the `wave_out' object is playing audio, or it is in paused state,
+       we have to call the `stop' member function, to flush pending buffers */
+    if ((status == WAVEOUT_PLAYING) || (status== WAVEOUT_PAUSED))
     {
-    
         stop();
-
     }
 
-
-
-    //
-    // When we have flushed all pending buffers,
-    // the wave out handle can be successfully closed.
-    //
-
-    err = waveOutClose( waveout_handle );
-
-
-    if ( err != MMSYSERR_NOERROR )
+    /* When we have flushed all pending buffers, the wave out handle can be successfully closed */
+    err = waveOutClose(waveout_handle);
+    if (err != MMSYSERR_NOERROR)
     {
-
         MessageBox(0, _T("waveOutClose Error"), 0, 0);
-        //TODO: throw error
-
+        /* TODO: throw error */
     }
 
     free_buffers_mem_();
-
 }
 
-
 DWORD WINAPI 
-audio_waveout::playing_procedure( LPVOID arg )
+audio_waveout::playing_procedure(LPVOID arg)
 {
     MSG msg;
-    WAVEHDR * phdr;
+    WAVEHDR *phdr;
     MMRESULT err;
-    audio_waveout * _this = ( audio_waveout * ) arg;
+    audio_waveout *_this = (audio_waveout *)arg;
     unsigned int read_size;
-    
-
-
-    //
-    // Check the arg pointer
-    //
 
-    if ( _this == 0 )
+    /* Check the arg pointer */
+    if (_this == 0)
         return 0;
 
-    
-    
-    //
-    // The thread can go to sleep for now.
-    // It will be wake up only when there is audio data
-    // to be recorded.
-    //
-
-    if ( _this->wakeup_playthread )
+    /* The thread can go to sleep for now. It will be wake up only when
+       there is audio data to be recorded */
+    if (_this->wakeup_playthread)
         WaitForSingleObject(_this->wakeup_playthread, INFINITE);
 
-
-
-    //
-    // Entering main polling loop
-    //
-
-    while ( GetMessage( &msg, 0, 0, 0 ))       
-    {  
-
-        switch ( msg.message )
+    /* Entering main polling loop */
+    while (GetMessage(&msg, 0, 0, 0))
+    {
+        switch (msg.message)
         {
-
             case MM_WOM_DONE:
-            
-                phdr = ( WAVEHDR * ) msg.lParam;
-
+                phdr = (WAVEHDR *)msg.lParam;
 
-                //
-                // If the status of the `wave_out' object
-                // is different than playing, then the thread
-                // can go to sleep.
-                //
-
-                if (( _this->status != WAVEOUT_PLAYING ) && 
-                        ( _this->status != WAVEOUT_FLUSHING ) &&
-                                    ( _this->wakeup_playthread ))
+                /* If the status of the `wave_out' object is different
+                   than playing, then the thread can go to sleep */
+                if ((_this->status != WAVEOUT_PLAYING) &&
+                    (_this->status != WAVEOUT_FLUSHING) &&
+                    (_this->wakeup_playthread))
                 {
                     WaitForSingleObject(_this->wakeup_playthread, INFINITE);
                 }
 
-
-
-                //
-                // The playing thread doesn't have to sleep,
-                // so let's checking first if the little buffer
-                // has been sent to the audio driver (it has the 
-                // WHDR_DONE flag). If it is, we can read new
-                // audio datas from the `audio_producer' object,
-                // refill the little buffer, and resend it to the
-                // driver with waveOutWrite( ) API.
-                //
-                
-                if ( phdr->dwFlags & WHDR_DONE )
+                /* The playing thread doesn't have to sleep, so let's checking
+                   first if the little buffer has been sent to the audio driver
+                   (it has the WHDR_DONE flag). If it is, we can read new audio
+                   datas from the `audio_producer' object, refill the little buffer,
+                   and resend it to the driver with waveOutWrite( ) API */
+                if (phdr->dwFlags & WHDR_DONE)
                 {
-
-                    if ( _this->status == WAVEOUT_PLAYING )
+                    if (_this->status == WAVEOUT_PLAYING)
                     {
-
-                        //
-                        // Here the thread is still playing a sound,
-                        // so it can read new audio data from the
-                        // `audio_producer' object.
-                        //
-                    
-                        read_size = 
-                            _this->audio_buf.read(
-                                            ( BYTE * ) phdr->lpData, 
-                                            phdr->dwBufferLength 
-                                        );
-
+                        /* Here the thread is still playing a sound, so it can
+                           read new audio data from the `audio_producer' object */
+                        read_size = _this->audio_buf.read((BYTE *)phdr->lpData,
+                                                          phdr->dwBufferLength);
                     } else
-                       read_size = 0;
-
-                    
+                        read_size = 0;
 
-                    //
-                    // If the `audio_producer' object, has produced some
-                    // audio data, so `read_size' will be > 0.
-                    //
-                        
-                    if ( read_size )
+                    /* If the `audio_producer' object, has produced some
+                       audio data, so `read_size' will be > 0 */
+                    if (read_size)
                     {
-
-                        //
-                        // Adjusts the correct effectively read size.
-                        //
-
+                        /* Adjusts the correct effectively read size */
                         phdr->dwBufferLength = read_size;
 
-                        //
-                        // Before sending the little buffer to the
-                        // driver, we have to remove the `WHDR_DONE'
-                        // flag, because the little buffer now contain
-                        // new audio data that have to be played.
-                        //
-
+                        /* Before sending the little buffer to the driver,
+                           we have to remove the `WHDR_DONE' flag, because
+                           the little buffer now contain new audio data that have to be played */
                         phdr->dwFlags &= ~WHDR_DONE;
 
+                        /* Plays the sound of the little buffer */
+                        err = waveOutWrite(_this->waveout_handle,
+                                           phdr,
+                                           sizeof(WAVEHDR));
 
-                        //
-                        // Plays the sound of the little buffer.
-                        //
-
-                        err = waveOutWrite( 
-                                    _this->waveout_handle, 
-                                    phdr, 
-                                    sizeof( WAVEHDR )
-                                );
-
-
-                        //
-                        // Checking if any error has occured.
-                        //
-
-                        if ( err != MMSYSERR_NOERROR )
+                        /* Checking if any error has occured */
+                        if (err != MMSYSERR_NOERROR)
                         {
-                                MessageBox(0, _T("waveOutWrite Error"), 0, 0);
-                                //TODO: throw error
+                            MessageBox(0, _T("waveOutWrite Error"), 0, 0);
+                            /* TODO: throw error */
                         }
-
-
-
-
-                    } else { // if ( read_size )
-
-
-
-                        //
-                        // Here `read_size' is 0, so the
-                        // `audio_producer' object, doesn't have any
-                        // sound data to produce anymore.
-                        // So, now we have to see the little buffer
-                        // #ID to establishing what to do.
-                        //
-
-                        if ( phdr->dwUser == 0 )
+                    }
+                    else
+                    {
+                        /* Here `read_size' is 0, so the `audio_producer' object,
+                           doesn't have any sound data to produce anymore. So,
+                           now we have to see the little buffer #ID to establishing what to do */
+                        if (phdr->dwUser == 0)
                         {
-
-                           
-                            
-                            //
-                            // Here `read_size' is 0, and the buffer
-                            // user data contain 0, so this is the
-                            // first of N little buffers that came
-                            // back with `WHDR_DONE' flag; this means
-                            // that this is the last little buffer in
-                            // which we have to read data to; so we
-                            // can _STOP_ reading data from the 
-                            // `audio_producer' object: doing this is
-                            // accomplished just setting the current
-                            // status as "WAVEOUT_FLUSHING".
-                            //
-
+                            /* Here `read_size' is 0, and the buffer user data
+                               contain 0, so this is the first of N little
+                               buffers that came back with `WHDR_DONE' flag;
+                               this means that this is the last little buffer
+                               in which we have to read data to; so we can
+                               _STOP_ reading data from the `audio_producer'
+                               object: doing this is accomplished just setting
+                               the current status as "WAVEOUT_FLUSHING" */
                             _this->status = WAVEOUT_FLUSHING;
-
-
-                        } else if ( phdr->dwUser == ( _this->buffers - 1 )) {
-
-
-                           
-                            //
-                            // Here `read_size' and the buffer user
-                            // data, that contain a buffer ID#,
-                            // is equal to the number of the total
-                            // buffers - 1. This means that this is the
-                            // _LAST_ little buffer that has been played
-                            // by the audio driver. We can STOP the
-                            // `wave_out' object now, or restart the
-                            // sound playing, if we have a infinite loop.
-                            //
-
-
+                        }
+                        else if (phdr->dwUser == (_this->buffers - 1))
+                        {
+                            /* Here `read_size' and the buffer user data, that
+                               contain a buffer ID#, is equal to the number of
+                               the total buffers - 1. This means that this is
+                               the _LAST_ little buffer that has been played by
+                               the audio driver. We can STOP the `wave_out'
+                               object now, or restart the sound playing, if we have a infinite loop */
                             _this->stop();
-                            
-                            //
-                            // Let the thread go to sleep.
-                            //
 
-                            if ( _this->audio_buf.play_finished )
+                            /* Let the thread go to sleep */
+                            if (_this->audio_buf.play_finished)
                                 _this->audio_buf.play_finished();
-                            
 
-                            if ( _this->wakeup_playthread )
+                            if (_this->wakeup_playthread)
                                 WaitForSingleObject(_this->wakeup_playthread,
                                                     INFINITE);
 
-                        }  //if ( phdr->dwUser == ( _this->buffers - 1 ))
-
-                    }  //if read_size != 0
-
-                }  //( phdr->dwFlags & WHDR_DONE )
-                    
-
-                break; // end case
-
-
-
+                        } /* if (phdr->dwUser == (_this->buffers - 1)) */
+                    } /* if read_size != 0 */
+                } /* (phdr->dwFlags & WHDR_DONE) */
+                break; /* end case */
             case MM_WOM_CLOSE:
-
-                //
-                // The thread can exit now.
-                //
-
+                /* The thread can exit now */
                 return 0;
-
                 break;
-
-
             case MM_WOM_OPEN:
-                
-                //
-                // Do nothing.
-                //
-
+                /* Do nothing */
                 break;
+        } /* end switch(msg.message) */
+    } /* end while(GetMessage(...)) */
 
-
-        }  //end switch( msg.message )
-        
-    }  //end while( GetMessage( ... ))
-
-    return 0;                          
+    return 0;
 }
 
-
 _AUDIO_NAMESPACE_END_
index 932bde7..cf3fd06 100644 (file)
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
-
-
-
 #ifndef _AUDIOWAVEOUT__H_
 #define _AUDIOWAVEOUT__H_
 
-
-//#include "audio_def.hpp"
 #include "audio_format.hpp"
-
-
 #include "audio_producer.hpp"
 
-
-
 _AUDIO_NAMESPACE_START_
 
-
-
-
-
-enum audio_waveout_status { WAVEOUT_NOTREADY, WAVEOUT_READY, 
-                            WAVEOUT_PLAYING, WAVEOUT_FLUSHING,
-                            WAVEOUT_PAUSED, WAVEOUT_STOP,
-                            WAVEOUT_ERR,
-                
-                           };
-
-
-
-
+enum audio_waveout_status
+{
+    WAVEOUT_NOTREADY,
+    WAVEOUT_READY,
+    WAVEOUT_PLAYING,
+    WAVEOUT_FLUSHING,
+    WAVEOUT_PAUSED,
+    WAVEOUT_STOP,
+    WAVEOUT_ERR
+};
 
 class audio_waveout
 {
-
     friend class audio_buffer;
 
-
-
     private:
-
-
-        static DWORD WINAPI 
-            playing_procedure( LPVOID );
-
-
-        
+        static DWORD WINAPI playing_procedure(LPVOID);
         HANDLE wakeup_playthread;
 
-        
-
-
     protected:
+        WAVEFORMATEX wave_format;
+        WAVEHDR *wave_headers;
+        HWAVEOUT waveout_handle;
 
-        
-        WAVEFORMATEX   wave_format;
-        WAVEHDR        * wave_headers;
-        HWAVEOUT       waveout_handle;
-
-        
-        
-
-        
-        const audio_format & aud_info;
-        audio_producer & audio_buf;
-
-
-        
-
-
-
-        //
-        // Audio Playing Thread id
-        //
-
-        DWORD     playthread_id;
-
-
-
+        const audio_format &aud_info;
+        audio_producer &audio_buf;
 
+        /* Audio Playing Thread id */
+        DWORD playthread_id;
 
         audio_waveout_status status;
-
-
-
-
         float buf_secs;
 
+        /* The temporary buffers for the audio data outgoing to the waveout
+           device and its size, and its total number */
 
+        /* base address for entire memory */
+        BYTE *main_buffer;
 
-        //
-        // The temporary buffers for the audio
-        // data outgoing to the waveout device
-        // and its size, and its total number.
-        //
-
-
-        //base address for entire memory
-        BYTE * main_buffer;
-
-        //size in bytes for the entire memory
+        /* size in bytes for the entire memory */
         unsigned int mb_size;
 
-        //number of little buffers
+        /* number of little buffers */
         unsigned int buffers;
 
+        /* Protected Functions */
 
-        
-
-
-
-        //
-        // Protected Functions
-        //
-
-        void init_( void );
-        void alloc_buffers_mem_( unsigned int, float );
-        void free_buffers_mem_( void );
-
-
-        void init_headers_( void );
-        void prep_headers_( void );
-        void unprep_headers_( void );
-
-
-
-        
-
+        void init_(void);
+        void alloc_buffers_mem_(unsigned int, float);
+        void free_buffers_mem_(void);
 
+        void init_headers_(void);
+        void prep_headers_(void);
+        void unprep_headers_(void);
 
     public:
-
-        //
-        // Ctors
-        //
-
-        audio_waveout( const audio_format & aud_fmt,
-                                audio_producer & a_buf )
-
-            : wave_headers( 0 ), aud_info( aud_fmt ),
-            audio_buf( a_buf ),  status( WAVEOUT_NOTREADY ), 
-            main_buffer( 0 ), mb_size( 0 ),
-            buffers( _AUDIO_DEFAULT_WAVEOUTBUFFERS )
+        /* Ctors */
+        audio_waveout(const audio_format &aud_fmt,
+                      audio_producer &a_buf) : wave_headers(0),
+                                               aud_info(aud_fmt),
+                                               audio_buf(a_buf),
+                                               status(WAVEOUT_NOTREADY),
+                                               main_buffer(0),
+                                               mb_size(0),
+                                               buffers(_AUDIO_DEFAULT_WAVEOUTBUFFERS)
         {
-
-            //
-            // Initializing internal wavein data
-            //
-            
-            
+            /* Initializing internal wavein data */
             init_();
-
         }
 
-        
-
-
-
-        
-        //
-        // Dtor
-        //
-
-        ~audio_waveout( void )
-        {  }
-
-
-
-
-        //
-        // Public Functions
-        //
-
-        void open  ( void );
-        void play  ( void );
-        void pause ( void );
-        void stop  ( void );
-        void close ( void );
-
-
-        audio_waveout_status current_status( void )
-        { return status; }
-
-
+        /* Dtor */
+        ~audio_waveout(void)
+        {
+        }
 
+        /* Public Functions */
 
-        BYTE * buf( void ) { return main_buffer; }
-        unsigned int bufsz( void ) { return mb_size; }
+        void open(void);
+        void play(void);
+        void pause(void);
+        void stop(void);
+        void close(void);
 
+        audio_waveout_status current_status(void)
+        {
+            return status;
+        }
 
-        unsigned int samplevalue_max( void )
+        BYTE *buf(void)
         {
+            return main_buffer;
+        }
 
-            if ( aud_info.bits() == 16 )
-                return (unsigned int )65535;
+        unsigned int bufsz(void)
+        {
+            return mb_size;
+        }
 
-            else if ( aud_info.bits() == 8 )
+        unsigned int samplevalue_max(void)
+        {
+            if (aud_info.bits() == 16)
+                return (unsigned int)65535;
+            else if (aud_info.bits() == 8)
                 return (unsigned int)255;
-
             else 
                 return 0;
         }
 
-
-        unsigned tot_samples_buf( void )
+        unsigned tot_samples_buf(void)
         {
-
-
-            return aud_info.samples_in_bytes( mb_size );
-
-
+            return aud_info.samples_in_bytes(mb_size);
         }
 
-        unsigned int nsample ( unsigned int nsamp )
+        unsigned int nsample(unsigned int nsamp)
         {
-
-
             unsigned int svalue;
 
-
-
-            if ( aud_info.bits() == 16 )
-                svalue = ( unsigned int )  abs( *(( short * ) (main_buffer + aud_info.bytes_in_samples( nsamp ))));
-            else if ( aud_info.bits() == 8 )
-               svalue = (unsigned int)(( ptrdiff_t ) *(main_buffer + aud_info.bytes_in_samples( nsamp )));
-
+            if (aud_info.bits() == 16)
+                svalue = (unsigned int)abs(*((short *)(main_buffer + aud_info.bytes_in_samples(nsamp))));
+            else if (aud_info.bits() == 8)
+               svalue = (unsigned int)((ptrdiff_t) *(main_buffer + aud_info.bytes_in_samples(nsamp)));
             else 
                 svalue = 0;
 
             return svalue;
-
         }
-
-
 };
 
-
-
 _AUDIO_NAMESPACE_END_
 
-
-
-
-#endif //ifdef _AUDIOWAVEOUT__H_
+#endif /* _AUDIOWAVEOUT__H_ */
index 6638590..4031d12 100644 (file)
@@ -10,4 +10,4 @@
 #include "audio_producer.hpp"
 #include "audio_receiver.hpp"
 
-#endif //ifdef _KKAUDIO__H_
+#endif /* _AUDIO__H_ */
index 24b71d9..6e3e77a 100644 (file)
@@ -5,26 +5,25 @@
  * PROGRAMMERS:     Marco Pagliaricci (irc: rendar)
  */
 
+#include "stdafx.h"
+#include "sndrec32.h"
+
 #ifndef _UNICODE
 #define gprintf _snprintf
 #else
 #define gprintf _snwprintf
 #endif
 
-#include "stdafx.h"
-#include "sndrec32.h"
-
 HINSTANCE hInst;
 TCHAR szTitle[MAX_LOADSTRING];
 TCHAR szWindowClass[MAX_LOADSTRING];
 
-
-ATOM                           MyRegisterClass( HINSTANCE hInstance );
-ATOM                           MyRegisterClass_wave( HINSTANCE hInstance );
-BOOL                           InitInstance( HINSTANCE, int );
-BOOL                           InitInstance_wave( HWND, HINSTANCE, int );
-LRESULT CALLBACK       WndProc( HWND, UINT, WPARAM, LPARAM );
-LRESULT CALLBACK       WndProc_wave( HWND, UINT, WPARAM, LPARAM );
+ATOM MyRegisterClass(HINSTANCE hInstance);
+ATOM MyRegisterClass_wave(HINSTANCE hInstance);
+BOOL InitInstance(HINSTANCE, int);
+BOOL InitInstance_wave(HWND, HINSTANCE, int);
+LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
+LRESULT CALLBACK WndProc_wave(HWND, UINT, WPARAM, LPARAM);
 
 BOOL win_first, wout_first;
 
@@ -41,7 +40,6 @@ BOOL stopped_flag;
 BOOL isnew;
 BOOL display_dur;
 
-
 DWORD slider_pos;
 WORD slider_min;
 WORD slider_max;
@@ -61,53 +59,52 @@ TCHAR str_stereo[10];
 
 BOOL path_set;
 
-snd::audio_membuffer * AUD_BUF;
-snd::audio_waveout * AUD_OUT;
-snd::audio_wavein * AUD_IN;
-
+snd::audio_membuffer *AUD_BUF;
+snd::audio_waveout *AUD_OUT;
+snd::audio_wavein *AUD_IN;
 
 BOOL s_recording;
 
-
 NONCLIENTMETRICS s_info;
 
-
 RECT text_rect;
 RECT text2_rect;
 RECT cli;
 
-
-INT_PTR CALLBACK AboutDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
+INT_PTR
+CALLBACK
+AboutDlgProc(HWND hWnd,
+             UINT msg,
+             WPARAM wp,
+             LPARAM lp)
 {
-       switch (msg)
-       {
-               case WM_COMMAND:
-                       switch (LOWORD(wp))
-                       {
-                               case IDOK:
-                                       EndDialog(hWnd, 0);
-                                       return TRUE;
-                       }
-                       break;
-               case WM_CLOSE:
-                       EndDialog(hWnd, 0);
-                       return TRUE;
-       }
-       return FALSE;
+    switch (msg)
+    {
+        case WM_COMMAND:
+            switch (LOWORD(wp))
+            {
+                case IDOK:
+                    EndDialog(hWnd, 0);
+                    return TRUE;
+            }
+            break;
+        case WM_CLOSE:
+            EndDialog(hWnd, 0);
+            return TRUE;
+    }
+    return FALSE;
 }
 
-
-
-int APIENTRY _tWinMain(HINSTANCE hInstance,
-                     HINSTANCE hPrevInstance,
-                     LPTSTR    lpCmdLine,
-                     int       nCmdShow)
+int
+APIENTRY
+_tWinMain(HINSTANCE hInstance,
+          HINSTANCE hPrevInstance,
+          LPTSTR lpCmdLine,
+          int nCmdShow)
 {
-
     UNREFERENCED_PARAMETER(hPrevInstance);
     UNREFERENCED_PARAMETER(lpCmdLine);
 
-
     MSG msg;
     HACCEL hAccelTable;
     
@@ -127,69 +124,51 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
     text2_rect.right = REFRESHB_CX;
     text2_rect.bottom = REFRESHB_CY;
 
-    //
-    // Retrieving defaul system font, and others
-    // system informations.
-    //
-   
-    SystemParametersInfo( 
-                    SPI_GETNONCLIENTMETRICS, 
-                    sizeof( NONCLIENTMETRICS ), 
-                    &s_info, 
-                    0 
-                );
-
-    //
-    // Set font size
-    //
+    /* Retrieving defaul system font, and others system informations */
+    SystemParametersInfo(SPI_GETNONCLIENTMETRICS,
+                         sizeof(NONCLIENTMETRICS),
+                         &s_info,
+                         0);
 
+    /* Set font size */
     s_info.lfMenuFont.lfHeight = 14;
 
-    //
-    // Inits buttons bitmaps
-    //
-
-    butbmps[0] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_START ));
-    butbmps[1] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_END ));
-    butbmps[2] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_PLAY ));
-    butbmps[3] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_STOP ));
-    butbmps[4] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_REC ));
+    /* Inits buttons bitmaps */
 
-    butbmps_dis[0] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_START_DIS ));
-    butbmps_dis[1] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_END_DIS ));
-    butbmps_dis[2] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_PLAY_DIS ));
-    butbmps_dis[3] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_STOP_DIS ));
-    butbmps_dis[4] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_REC_DIS ));
+    butbmps[0] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_START));
+    butbmps[1] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_END));
+    butbmps[2] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_PLAY));
+    butbmps[3] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_STOP));
+    butbmps[4] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_REC));
 
+    butbmps_dis[0] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_START_DIS));
+    butbmps_dis[1] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_END_DIS));
+    butbmps_dis[2] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_PLAY_DIS));
+    butbmps_dis[3] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_STOP_DIS));
+    butbmps_dis[4] = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP2_REC_DIS));
 
+    /* Inits audio devices and buffers */
 
-    //
-    // Inits audio devices and buffers
-    //
-
-    snd::audio_membuffer AUD_buffer( snd::A44100_16BIT_STEREO );
-    snd::audio_waveout AUD_waveout( snd::A44100_16BIT_STEREO, AUD_buffer );
-    snd::audio_wavein AUD_wavein( snd::A44100_16BIT_STEREO, AUD_buffer );
+    snd::audio_membuffer AUD_buffer(snd::A44100_16BIT_STEREO);
+    snd::audio_waveout AUD_waveout(snd::A44100_16BIT_STEREO, AUD_buffer);
+    snd::audio_wavein AUD_wavein(snd::A44100_16BIT_STEREO, AUD_buffer);
 
     AUD_buffer.play_finished = l_play_finished;
     AUD_buffer.audio_arrival = l_audio_arrival;
     AUD_buffer.buffer_resized = l_buffer_resized;
 
-    AUD_buffer.alloc_seconds( INITIAL_BUFREC_SECONDS );
+    AUD_buffer.alloc_seconds(INITIAL_BUFREC_SECONDS);
 
     AUD_IN = &AUD_wavein;
     AUD_OUT = &AUD_waveout;
     AUD_BUF = &AUD_buffer;
 
-    //
-    // Inits slider default parameters
-    //
+    /* Inits slider default parameters */
 
     slider_pos = 0;
     slider_min = 0;
     slider_max = SLIDER_W;
 
-
     stopped_flag = FALSE;
     path_set = FALSE;
     isnew = TRUE;
@@ -198,345 +177,254 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
     samples_max = AUD_buffer.total_samples();
 
     s_recording = false;
-   
-    //
-    // Inits strings
-    //
-
-    LoadString( hInstance, 
-        IDS_APP_TITLE, szTitle, MAX_LOADSTRING );
-
-    LoadString( hInstance, 
-        IDC_REACTOS_SNDREC32, szWindowClass, MAX_LOADSTRING );
-
-
-    LoadString( hInstance, 
-        IDS_STRPOS, str_pos, MAX_LOADSTRING );
-
 
-    LoadString( hInstance, 
-        IDS_STRDUR, str_dur, MAX_LOADSTRING );
-
-    LoadString( hInstance, 
-        IDS_STRBUF, str_buf, MAX_LOADSTRING );
-
-    LoadString( hInstance, 
-        IDS_STRFMT, str_fmt, MAX_LOADSTRING );
-
-    LoadString( hInstance, 
-        IDS_STRCHAN, str_chan, MAX_LOADSTRING );
-
-    LoadString( hInstance, 
-        IDS_STRMONO, str_mono, 10 );
-
-    LoadString( hInstance, 
-        IDS_STRSTEREO, str_stereo, 10 );
-
-
-    //
-    // Registers sndrec32 window class
-    //
-
-    MyRegisterClass( hInstance );
-
-    MyRegisterClass_wave( hInstance );
-
-    
-    if ( !InitInstance( hInstance, nCmdShow ))
+    /* Inits strings */
+    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
+    LoadString(hInstance, IDC_REACTOS_SNDREC32, szWindowClass, MAX_LOADSTRING);
+    LoadString(hInstance, IDS_STRPOS, str_pos, MAX_LOADSTRING);
+    LoadString(hInstance, IDS_STRDUR, str_dur, MAX_LOADSTRING);
+    LoadString(hInstance, IDS_STRBUF, str_buf, MAX_LOADSTRING);
+    LoadString(hInstance, IDS_STRFMT, str_fmt, MAX_LOADSTRING);
+    LoadString(hInstance, IDS_STRCHAN, str_chan, MAX_LOADSTRING);
+    LoadString(hInstance, IDS_STRMONO, str_mono, 10);
+    LoadString(hInstance, IDS_STRSTEREO, str_stereo, 10);
+
+    /* Registers sndrec32 window class */
+    MyRegisterClass(hInstance);
+    MyRegisterClass_wave(hInstance);
+
+    if (!InitInstance(hInstance, nCmdShow))
     {
-        MessageBox( 0, TEXT( "CreateWindow() Error!" ), TEXT( "ERROR" ), MB_ICONERROR );
+        MessageBox(0, TEXT("CreateWindow() Error!"), TEXT("ERROR"), MB_ICONERROR);
         return FALSE;
     }
-    
-    //
-    // Loads key accelerators
-    //
-
-    hAccelTable = LoadAccelerators(hInstance, 
-                MAKEINTRESOURCE( IDC_REACTOS_SNDREC32 ));
-
-    
 
-    //
-    // Starts main loop
-    //
+    /* Loads key accelerators */
+    hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_REACTOS_SNDREC32));
 
-    while ( GetMessage( &msg, NULL, 0, 0 ))
+    /* Starts main loop */
+    while (GetMessage(&msg, NULL, 0, 0))
     {
-        if ( !TranslateAccelerator( msg.hwnd, hAccelTable, &msg ))
+        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
         {
-            TranslateMessage( &msg );
-            DispatchMessage( &msg );
+            TranslateMessage(&msg);
+            DispatchMessage(&msg);
         }
     }
 
-    if ( wout_first )
+    if (wout_first)
     {
         AUD_waveout.close();
-
     }
 
-
-    if ( win_first )
+    if (win_first)
     {
         AUD_wavein.close();
-
     }
 
     AUD_buffer.clear();
 
-    return ( int )msg.wParam;
+    return (int)msg.wParam;
 }
 
-
-
-
 ATOM 
-MyRegisterClass( HINSTANCE hInstance )
+MyRegisterClass(HINSTANCE hInstance)
 {
     WNDCLASSEX wcex;
 
     wcex.cbSize = sizeof(WNDCLASSEX);
 
-    wcex.style                 = CS_HREDRAW | CS_VREDRAW;
-    wcex.lpfnWndProc   = WndProc;
-    wcex.cbClsExtra            = 0;
-    wcex.cbWndExtra            = 0;
-    wcex.hInstance             = hInstance;
-    wcex.hIcon                 = LoadIcon( hInstance, MAKEINTRESOURCE( IDI_SNDREC32 ));
-    wcex.hCursor               = LoadCursor( NULL, IDC_ARROW );
-    wcex.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);
-    wcex.lpszMenuName  = MAKEINTRESOURCE( IDR_MENU1 );
-    wcex.lpszClassName = szWindowClass;
-    wcex.hIconSm               = LoadIcon( wcex.hInstance, MAKEINTRESOURCE( IDI_SNDREC32 ));
-
-
-    return RegisterClassEx( &wcex );
+    wcex.style = CS_HREDRAW | CS_VREDRAW;
+    wcex.lpfnWndProc = WndProc;
+    wcex.cbClsExtra = 0;
+    wcex.cbWndExtra = 0;
+    wcex.hInstance = hInstance;
+    wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SNDREC32));
+    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wcex.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);
+    wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
+    wcex.lpszClassName = szWindowClass;
+    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SNDREC32));
+
+    return RegisterClassEx(&wcex);
 }
 
 BOOL 
-InitInstance( HINSTANCE hInstance, int nCmdShow )
+InitInstance(HINSTANCE hInstance, int nCmdShow)
 {
-   HWND hWnd;
-
-   hInst = hInstance;
-
-   hWnd = CreateWindow(
-                    szWindowClass, 
-                    szTitle, 
-                    WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
-                    CW_USEDEFAULT, 
-                    CW_USEDEFAULT, 
-                    MAINWINDOW_W, 
-                    MAINWINDOW_H, 
-                    NULL, NULL, 
-                    hInstance, NULL
-                );
-
-   if (!hWnd)
-   {
-      return FALSE;
-   }
-
-   ShowWindow(hWnd, nCmdShow);
-   UpdateWindow(hWnd);
+    HWND hWnd;
+
+    hInst = hInstance;
+
+    hWnd = CreateWindow(szWindowClass,
+                        szTitle,
+                        WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
+                        CW_USEDEFAULT,
+                        CW_USEDEFAULT,
+                        MAINWINDOW_W,
+                        MAINWINDOW_H,
+                        NULL,
+                        NULL,
+                        hInstance,
+                        NULL);
+    if (!hWnd)
+    {
+        return FALSE;
+    }
 
-   main_win = hWnd;
+    ShowWindow(hWnd, nCmdShow);
+    UpdateWindow(hWnd);
 
+    main_win = hWnd;
 
-   return TRUE;
+    return TRUE;
 }
 
-
-
-
-
 ATOM 
-MyRegisterClass_wave( HINSTANCE hInstance )
+MyRegisterClass_wave(HINSTANCE hInstance)
 {
     WNDCLASSEX wcex;
 
-    wcex.cbSize = sizeof( WNDCLASSEX );
-
-    wcex.style                 = CS_HREDRAW | CS_VREDRAW;
-    wcex.lpfnWndProc   = WndProc_wave;
-    wcex.cbClsExtra            = 0;
-    wcex.cbWndExtra            = 0;
-    wcex.hInstance             = hInstance;
-    wcex.hIcon                 = 0;
-    wcex.hCursor               = LoadCursor( NULL, IDC_ARROW );
-    wcex.hbrBackground = ( HBRUSH )GetStockObject( BLACK_BRUSH );
-    wcex.lpszMenuName  = 0;
-    wcex.lpszClassName = TEXT( "sndrec32_wave" );
-    wcex.hIconSm               = 0;
-
+    wcex.cbSize = sizeof(WNDCLASSEX);
 
-    return RegisterClassEx( &wcex );
+    wcex.style = CS_HREDRAW | CS_VREDRAW;
+    wcex.lpfnWndProc = WndProc_wave;
+    wcex.cbClsExtra = 0;
+    wcex.cbWndExtra = 0;
+    wcex.hInstance = hInstance;
+    wcex.hIcon = 0;
+    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
+    wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
+    wcex.lpszMenuName = 0;
+    wcex.lpszClassName = TEXT("sndrec32_wave");
+    wcex.hIconSm = 0;
+
+    return RegisterClassEx(&wcex);
 }
 
 BOOL 
-InitInstance_wave( HWND f, HINSTANCE hInstance, int nCmdShow )
+InitInstance_wave(HWND f,
+                  HINSTANCE hInstance,
+                  int nCmdShow)
 {
-   HWND hWnd;
-
-   hInst = hInstance;
-
-   hWnd = CreateWindow(
-                    TEXT( "sndrec32_wave" ), 
-                    TEXT(""), 
-                    WS_DLGFRAME|WS_VISIBLE|WS_CHILD,
-                    WAVEBAR_X, 
-                    WAVEBAR_Y, 
-                    WAVEBAR_CX, 
-                    WAVEBAR_CY, 
-                    f, ( HMENU ) 8, 
-                    hInstance, 0
-                );
-
-   if ( !hWnd )
-   {
-      return FALSE;
-   }
-
-   ShowWindow( hWnd, nCmdShow );
-   UpdateWindow( hWnd );
+    HWND hWnd;
+
+    hInst = hInstance;
+
+    hWnd = CreateWindow(TEXT("sndrec32_wave"),
+                        TEXT(""),
+                        WS_DLGFRAME | WS_VISIBLE | WS_CHILD,
+                        WAVEBAR_X,
+                        WAVEBAR_Y,
+                        WAVEBAR_CX,
+                        WAVEBAR_CY,
+                        f,
+                        (HMENU)8,
+                        hInstance,
+                        0);
+
+    if (!hWnd )
+    {
+        return FALSE;
+    }
 
-   wave_win = hWnd;
+    ShowWindow(hWnd, nCmdShow);
+    UpdateWindow(hWnd);
 
+    wave_win = hWnd;
 
-   return TRUE;
+    return TRUE;
 }
 
-
-LRESULT CALLBACK 
-WndProc_wave( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
+LRESULT
+CALLBACK 
+WndProc_wave(HWND hWnd,
+             UINT message,
+             WPARAM wParam,
+             LPARAM lParam)
 {
     PAINTSTRUCT ps;
     HDC hdc;
     HPEN pen;
 
-
-
-    unsigned int max_h = ( cli.bottom / 2 );
+    unsigned int max_h = (cli.bottom / 2);
     unsigned int samples;
     unsigned int x, line_h;
-   
-   
 
-    switch ( message )
+    switch (message)
     {
-
-
-    case WM_CREATE:
-
-
-        GetClientRect( hWnd, &cli );
-
-        break;
-
-
-    case WM_PAINT:
-        
-        //
-        // Initialize hdc objects
-        //
-
-        hdc = BeginPaint( hWnd, &ps );
-
-        pen = ( HPEN ) CreatePen( PS_SOLID, 1, WAVEBAR_COLOR );
-
-        SelectObject( hdc, ( HBRUSH )pen );
-
-        if ( AUD_OUT->current_status() == snd::WAVEOUT_PLAYING )
-        {
-
-            samples = AUD_OUT->tot_samples_buf();
-           
-
-            for ( unsigned int i = 0; i < WAVEBAR_CX; ++i )
+        case WM_CREATE:
+            GetClientRect(hWnd, &cli);
+            break;
+        case WM_PAINT:
+            /* Initialize hdc objects */
+            hdc = BeginPaint(hWnd, &ps);
+            pen = (HPEN)CreatePen(PS_SOLID, 1, WAVEBAR_COLOR);
+            SelectObject(hdc, (HBRUSH)pen);
+            if (AUD_OUT->current_status() == snd::WAVEOUT_PLAYING)
             {
-
-                x = ( i * samples ) / WAVEBAR_CX;
-
-                line_h = ( AUD_OUT->nsample( x ) * max_h ) / AUD_OUT->samplevalue_max();
-
-
-                if ( line_h )
+                samples = AUD_OUT->tot_samples_buf();
+                for (unsigned int i = 0; i < WAVEBAR_CX; ++i)
                 {
-                    MoveToEx( hdc, i, max_h, 0 );
-                    LineTo( hdc, i, max_h - ( line_h * 2 ));
-                    LineTo( hdc, i, max_h + ( line_h * 2 ));
-                } else
-                    SetPixel( hdc, i, max_h, WAVEBAR_COLOR );
-
+                    x = (i * samples) / WAVEBAR_CX;
+                    line_h = (AUD_OUT->nsample(x) * max_h) / AUD_OUT->samplevalue_max();
+                    if (line_h)
+                    {
+                        MoveToEx(hdc, i, max_h, 0);
+                        LineTo(hdc, i, max_h - (line_h * 2));
+                        LineTo(hdc, i, max_h + (line_h * 2));
+                    }
+                    else
+                    {
+                        SetPixel(hdc, i, max_h, WAVEBAR_COLOR);
+                    }
+                }
             }
-
-
-        } else if ( AUD_IN->current_status() == snd::WAVEIN_RECORDING ) {
-
-
-            samples = AUD_IN->tot_samples_buf();
-           
-
-            for ( unsigned int i = 0; i < WAVEBAR_CX; ++i )
+            else if (AUD_IN->current_status() == snd::WAVEIN_RECORDING)
             {
-
-                x = ( i * samples ) / WAVEBAR_CX;
-
-                line_h = ( AUD_IN->nsample( x ) * max_h ) / AUD_IN->samplevalue_max();
-
-                
-                 if ( line_h )
+                samples = AUD_IN->tot_samples_buf();
+                for (unsigned int i = 0; i < WAVEBAR_CX; ++i)
                 {
-                    MoveToEx( hdc, i, max_h, 0 );
-                    LineTo( hdc, i, max_h - ( line_h * 2 ));
-                    LineTo( hdc, i, max_h + ( line_h * 2 ));
-                } else
-                    SetPixel( hdc, i, max_h, WAVEBAR_COLOR );
-
+                    x = (i * samples) / WAVEBAR_CX;
+                    line_h = (AUD_IN->nsample(x) * max_h) / AUD_IN->samplevalue_max();
+                    if (line_h)
+                    {
+                        MoveToEx(hdc, i, max_h, 0);
+                        LineTo(hdc, i, max_h - (line_h * 2));
+                        LineTo(hdc, i, max_h + (line_h * 2));
+                    }
+                    else
+                    {
+                        SetPixel( hdc, i, max_h, WAVEBAR_COLOR );
+                    }
+                }
+            }
+            else
+            {
+                /* In standby mode draw a simple line */
+                MoveToEx(hdc, 0, cli.bottom / 2, 0);
+                LineTo(hdc, WAVEBAR_CX, cli.bottom  / 2);
             }
 
+            DeleteObject( pen );
+            EndPaint( hWnd, &ps );
+            break;
 
-        } else {
-
-            //
-            // In standby mode draw a simple line.
-            //
-
-            MoveToEx( hdc, 0, cli.bottom  / 2, 0 );
-            LineTo( hdc, WAVEBAR_CX, cli.bottom  / 2 );
-
-        }
-
-       
-        DeleteObject( pen );
-
-        EndPaint( hWnd, &ps );
-
-        break;
-
-        
-    case WM_USER:
-        
-        
-        break;
-
-
-    default:
-        return DefWindowProc( hWnd, message, wParam, lParam );
-
-
+        case WM_USER:
+            break;
+        default:
+            return DefWindowProc(hWnd, message, wParam, lParam);
     }
 
-
     return 0;
-
 }
 
-
-
-LRESULT CALLBACK 
-WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
+LRESULT
+CALLBACK 
+WndProc(HWND hWnd,
+        UINT message,
+        WPARAM wParam,
+        LPARAM lParam)
 {
     int wmId;
     TCHAR str_tmp[MAX_LOADSTRING];
@@ -545,682 +433,490 @@ WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
     HFONT font;
     long long slid_samp = 0;
 
-
-
-    //
-    // Checking for global pointers to buffer and
-    // io audio devices.
-    //
-
-    if (( !AUD_IN ) || ( !AUD_OUT ) || ( !AUD_BUF ))
+    /* Checking for global pointers to buffer and io audio devices */
+    if ((!AUD_IN) || (!AUD_OUT) || (!AUD_BUF))
     {
-        MessageBox( 0, TEXT("Buffer Error"), 0, 0 );
+        MessageBox(0, TEXT("Buffer Error"), 0, 0);
         return 1;
     }
-    
 
-    switch ( message )
+    switch (message)
     {
-
-
-    case WM_CREATE:
-
-
-        //
-        // Creating the wave bar
-        //
-
-        if ( !InitInstance_wave( hWnd, hInst, SW_SHOWNORMAL ))
-        {
-            MessageBox( 
-                    0, 
-                    TEXT( "CreateWindow() Error!" ), 
-                    TEXT( "ERROR" ), 
-                    MB_ICONERROR 
-                );
-            
-            return FALSE;
-        }
-
-
-
-
-        //
-        // Creating ALL the buttons
-        //
-        
-        for ( int i = 0; i < 5; ++ i )
-        {
-
-            buttons[i] = CreateWindow( 
-                                TEXT("button"), 
-                                TEXT(""), 
-                                WS_CHILD|WS_VISIBLE|BS_BITMAP, 
-                                BUTTONS_CX + ( i * (BUTTONS_W+((i == 0)?0:BUTTONS_SPACE))), 
-                                BUTTONS_CY, BUTTONS_W, BUTTONS_H, hWnd, 
-                                (HMENU)i, hInst, 0
-                            );
-
-            if ( !buttons[i] )
+        case WM_CREATE:
+            /* Creating the wave bar */
+            if (!InitInstance_wave(hWnd, hInst, SW_SHOWNORMAL))
             {
-                MessageBox(0, 0, TEXT("CreateWindow() Error!"), 0);
+                MessageBox(0, TEXT("CreateWindow() Error!"), TEXT("ERROR"), MB_ICONERROR);
                 return FALSE;
-
             }
 
+            /* Creating ALL the buttons */
+            for (int i = 0; i < 5; ++i)
+            {
+                buttons[i] = CreateWindow(TEXT("button"),
+                                          TEXT(""),
+                                          WS_CHILD | WS_VISIBLE | BS_BITMAP,
+                                          BUTTONS_CX + (i * (BUTTONS_W + ((i == 0) ? 0 : BUTTONS_SPACE))),
+                                          BUTTONS_CY,
+                                          BUTTONS_W,
+                                          BUTTONS_H,
+                                          hWnd,
+                                          (HMENU)i,
+                                          hInst,
+                                          0);
+                if (!buttons[i])
+                {
+                    MessageBox(0, 0, TEXT("CreateWindow() Error!"), 0);
+                    return FALSE;
+                }
+
+                /* Realize the button bmp image */
+                SendMessage(buttons[i], BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)butbmps[i]);
+                UpdateWindow(buttons[i]);
+                disable_but(i);
+            }
 
-            //
-            // Realize the button bmp image
-            //
-
-            SendMessage(buttons[i], BM_SETIMAGE, ( WPARAM )IMAGE_BITMAP, ( LPARAM )butbmps[i]);
-            
-            UpdateWindow( buttons[i] );
-
-            disable_but( i );
-
-        }
-
+            /* Creating the SLIDER window */
+            slider = CreateWindow(TRACKBAR_CLASS,
+                                  TEXT(""),
+                                  WS_CHILD | WS_VISIBLE | TBS_NOTICKS | TBS_HORZ | TBS_ENABLESELRANGE,
+                                  SLIDER_CX,
+                                  SLIDER_CY,
+                                  SLIDER_W,
+                                  SLIDER_H,
+                                  hWnd,
+                                  (HMENU)SLIDER_ID,
+                                  hInst,
+                                  0);
+            if (!slider)
+            {
+                MessageBox(0, 0, TEXT( "CreateWindow() Error!" ), 0);
+                return FALSE;
+            }
 
-        //
-        // Creating the SLIDER window
-        //
-        
-        slider = CreateWindow( 
-                        TRACKBAR_CLASS, 
-                        TEXT(""), 
-                        WS_CHILD|WS_VISIBLE|TBS_NOTICKS|TBS_HORZ|TBS_ENABLESELRANGE, 
-                        SLIDER_CX, SLIDER_CY, SLIDER_W, SLIDER_H, hWnd, 
-                        ( HMENU )SLIDER_ID, hInst, 0
-                    );
+            /* Sets slider limits */
+            SendMessage(slider,
+                        TBM_SETRANGE,
+                        (WPARAM)TRUE,
+                        (LPARAM)MAKELONG(slider_min, slider_max));
 
+            UpdateWindow(slider);
+            enable_but(BUTREC_ID);
+            EnableWindow(slider, FALSE);
+            break;
 
-        if ( !slider )
+        /* Implements slider logic */
+        case WM_HSCROLL:
         {
-            MessageBox( 0, 0, TEXT( "CreateWindow() Error!" ), 0 );
-            return FALSE;
-
+            switch (LOWORD(wParam))
+            {
+                case SB_ENDSCROLL:
+                    break;
+                case SB_PAGERIGHT:
+                case SB_PAGELEFT:
+                case TB_THUMBTRACK:
+                    /* If the user touch the slider bar, set the
+                       audio start position properly */
+                    slider_pos = SendMessage(slider, TBM_GETPOS, 0, 0);
+                    slid_samp = (__int64)slider_pos * (__int64)samples_max;
+                    AUD_BUF->set_position(AUD_BUF->audinfo().bytes_in_samples((unsigned int)(slid_samp / (__int64)slider_max)));
+                    InvalidateRect(hWnd, &text_rect, TRUE);
+                    break;
+            }
+            break;
         }
 
+        case WM_COMMAND:
+            wmId = LOWORD(wParam);
+            if ((wmId >= 0) && (wmId < 5) && (butdisabled[wmId] == TRUE))
+                break;
 
-        //
-        // Sets slider limits
-        //
-
-
-        SendMessage( 
-                slider, 
-                TBM_SETRANGE,
-                ( WPARAM )TRUE, 
-                ( LPARAM )MAKELONG( slider_min, slider_max )
-            );
-
+            switch (wmId)
+            {
+                case ID_NEW:
+                    if (!isnew)
+                    {
+                        if (AUD_IN->current_status() == snd::WAVEIN_RECORDING)
+                            AUD_IN->stop_recording();
+
+                        if ((AUD_OUT->current_status() == snd::WAVEOUT_PLAYING) ||
+                            (AUD_OUT->current_status() == snd::WAVEOUT_PAUSED))
+                            AUD_OUT->stop();
+
+                        AUD_BUF->reset();
+
+                        enable_but(BUTREC_ID);
+                        disable_but(BUTSTART_ID);
+                        disable_but(BUTEND_ID);
+                        disable_but(BUTSTOP_ID);
+                        disable_but(BUTPLAY_ID);
+
+                        samples_max = AUD_BUF->total_samples();
+                        slider_pos = 0;
+
+                        SendMessage(slider, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) slider_pos);
+
+                        EnableMenuItem(GetMenu(hWnd), ID_FILE_SAVEAS, MF_GRAYED);
+                        EnableMenuItem(GetMenu(hWnd), ID_FILE_SAVE, MF_GRAYED);
+
+                        isnew = TRUE;
+                        display_dur = TRUE;
+
+                        ZeroMemory(file_path, MAX_PATH * sizeof(TCHAR));
+
+                        EnableWindow(slider, FALSE);
+
+                        InvalidateRect(hWnd, &text_rect, TRUE);
+                        InvalidateRect(hWnd, &text2_rect, TRUE);
+                    }
+                    break;
+
+                case ID_FILE_OPEN:
+                    ZeroMemory(&ofn, sizeof(ofn));
+
+                    ofn.lStructSize = sizeof(ofn);
+                    ofn.hwndOwner = hWnd;
+                    ofn.lpstrFilter = TEXT("Audio Files (*.wav)\0*.wav\0All Files (*.*)\0*.*\0");
+                    ofn.lpstrFile = file_path;
+                    ofn.nMaxFile = MAX_PATH;
+                    ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
+                    ofn.lpstrDefExt = TEXT("wav");
+
+                    if (GetOpenFileName(&ofn))
+                    {
+                        open_wav(file_path);
+                        EnableMenuItem(GetMenu(hWnd), ID_FILE_SAVE, MF_ENABLED);
+                        EnableMenuItem(GetMenu(hWnd), ID_FILE_SAVEAS, MF_ENABLED);
 
-        UpdateWindow( slider );
+                        EnableWindow(slider, TRUE);
+                    }
+
+                    InvalidateRect(hWnd, &text_rect, TRUE);
+                    InvalidateRect(hWnd, &text2_rect, TRUE);
+                    break;
 
-        enable_but( BUTREC_ID );
+                case ID__ABOUT:
+                    DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, AboutDlgProc);
+                    return TRUE;
+                    break;
 
-        EnableWindow( slider, FALSE );
+                case ID_FILE_SAVEAS:
+                    ZeroMemory(&ofn, sizeof(ofn));
 
+                    ofn.lStructSize = sizeof(ofn);
+                    ofn.hwndOwner = hWnd ;
+                    ofn.Flags = OFN_OVERWRITEPROMPT;
+                    ofn.lpstrFilter = TEXT("Audio Files (*.wav)\0*.wav\0All Files (*.*)\0*.*\0");
+                    ofn.lpstrFile = file_path;
+                    ofn.nMaxFile = MAX_PATH;
+                    
+                    ofn.lpstrDefExt = TEXT("wav");
+             
+                    if (GetSaveFileName (&ofn)) 
+                    {
+                        write_wav(file_path);
+                        EnableMenuItem(GetMenu(hWnd), ID_FILE_SAVE, MF_ENABLED);
+                    }
+                    break;
 
+                case ID_EXIT:
+                    DestroyWindow(hWnd);
+                    break;
 
+                /* Sndrec32 buttons routines */
+                case BUTSTART_ID:
+                    AUD_BUF->set_position_start();
+                    slider_pos = 0;
+                    SendMessage(slider, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)slider_pos);
+                    break;
 
-        break;
+                case BUTEND_ID:
+                    DestroyWindow(hWnd);
+                    break;
 
+                case BUTPLAY_ID:
+                    if (wout_first == false)
+                    {
+                        AUD_OUT->open();
+                        wout_first = true;
+                    }
 
+                    AUD_OUT->play();
 
-    //
-    // Implements slider logic
-    //
+                    disable_but(BUTSTART_ID);
+                    disable_but(BUTEND_ID);
+                    disable_but(BUTREC_ID);
+                    disable_but(BUTPLAY_ID);
 
-    case WM_HSCROLL :
-    {
-        switch( LOWORD( wParam ))
-        {
-        
-        case SB_ENDSCROLL:
-            break;
+                    SetTimer(hWnd, 1, 250, 0);
+                    SetTimer(hWnd, WAVEBAR_TIMERID, WAVEBAR_TIMERTIME, 0);
 
-        case SB_PAGERIGHT:
-        case SB_PAGELEFT:
-        case TB_THUMBTRACK:
+                    break;
 
+                case BUTSTOP_ID:
+                    if (s_recording)
+                    {
+                        s_recording = FALSE;
 
-            //
-            // If the user touch the slider bar,
-            // set the audio start position properly
-            //
+                        AUD_IN->stop_recording();
 
+                        /* Resetting slider position */
+                        slider_pos = 0;
+                        SendMessage(slider, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)slider_pos);
 
-            slider_pos = SendMessage( slider, TBM_GETPOS, 0, 0 );
+                        samples_max = AUD_BUF->samples_received();
 
-            slid_samp = ( __int64 )slider_pos * ( __int64 )samples_max;
+                        EnableMenuItem((HMENU)IDR_MENU1, ID_FILE_SAVEAS, MF_ENABLED);
 
-            AUD_BUF->set_position(
-                    AUD_BUF->audinfo().bytes_in_samples(
-                                    ( unsigned int )( slid_samp / ( __int64 )slider_max )
-                                )
-                );
+                        enable_but(BUTSTART_ID);
+                        enable_but(BUTEND_ID);
+                        enable_but(BUTREC_ID);
+                        enable_but(BUTPLAY_ID);
 
-            InvalidateRect( hWnd, &text_rect, TRUE );
+                        EnableMenuItem(GetMenu(hWnd), ID_FILE_SAVEAS, MF_ENABLED);
+                        EnableWindow(slider, TRUE);
 
+                        display_dur = FALSE;
 
-            break;
+                        AUD_BUF->truncate();
 
-        }
+                        InvalidateRect(hWnd, &text_rect, TRUE);
+                        InvalidateRect(wave_win, 0, TRUE);
 
-        break;
-    }
+                    }
+                    else
+                    {
+                        AUD_OUT->pause();
 
+                        enable_but(BUTSTART_ID);
+                        enable_but(BUTEND_ID);
+                        enable_but(BUTREC_ID);
+                        enable_but(BUTPLAY_ID);
 
+                    }
 
+                    KillTimer(hWnd, 1);
+                    KillTimer(hWnd, WAVEBAR_TIMERID);
 
+                    InvalidateRect(hWnd, &text_rect, TRUE);
 
+                    break;
 
-    case WM_COMMAND:
+                case BUTREC_ID:
+                    if (win_first == false)
+                    {
+                        AUD_IN->open();
+                        win_first = true;
+                    }
 
-        wmId    = LOWORD( wParam );
-
-        if (( wmId >= 0 ) && ( wmId < 5 ) && ( butdisabled[wmId] == TRUE ))
-            break;
-
-        switch ( wmId )
-        {
-
-        case ID_NEW:
-
-            if ( !isnew )
-            {
+                    s_recording = TRUE;
 
-                if ( AUD_IN->current_status() == snd::WAVEIN_RECORDING )
-                    AUD_IN->stop_recording();
+                    samples_max = AUD_BUF->total_samples();
 
+                    AUD_IN->start_recording();
 
-                if (( AUD_OUT->current_status() == snd::WAVEOUT_PLAYING ) ||
-                    ( AUD_OUT->current_status() == snd::WAVEOUT_PAUSED ))
-                    AUD_OUT->stop();
+                    enable_but(BUTSTOP_ID);
 
+                    disable_but(BUTSTART_ID);
+                    disable_but(BUTEND_ID);
+                    disable_but(BUTREC_ID);
+                    disable_but(BUTPLAY_ID);
 
-                AUD_BUF->reset();
+                    isnew = FALSE;
 
-                enable_but( BUTREC_ID );
-                disable_but( BUTSTART_ID );
-                disable_but( BUTEND_ID );
-                disable_but( BUTSTOP_ID );
-                disable_but( BUTPLAY_ID );
+                    EnableWindow(slider, FALSE);
 
+                    SetTimer(hWnd, 1, 150, 0);
+                    SetTimer(hWnd, WAVEBAR_TIMERID, WAVEBAR_TIMERTIME, 0);
 
-                samples_max = AUD_BUF->total_samples();
-                slider_pos = 0;
-
-                SendMessage(slider, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) slider_pos);
-
-                EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVEAS, MF_GRAYED );
-                EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVE, MF_GRAYED );
-
-                isnew = TRUE;
-                display_dur = TRUE;
-
-                ZeroMemory( file_path, MAX_PATH * sizeof(TCHAR) );
-
-                EnableWindow( slider, FALSE );
-
-                InvalidateRect( hWnd, &text_rect, TRUE );
-                InvalidateRect( hWnd, &text2_rect, TRUE );
+                    break;
 
+                default:
+                    return DefWindowProc(hWnd, message, wParam, lParam);
             }
-
-            
-            
             break;
 
-
-
-
-        case ID_FILE_OPEN:
-
-            ZeroMemory( &ofn, sizeof( ofn ));
-
-            ofn.lStructSize = sizeof( ofn );
-            ofn.hwndOwner = hWnd;
-            ofn.lpstrFilter = TEXT("Audio Files (*.wav)\0*.wav\0All Files (*.*)\0*.*\0");
-            ofn.lpstrFile = file_path;
-            ofn.nMaxFile = MAX_PATH;
-            ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
-            ofn.lpstrDefExt = TEXT("wav");
-
-            if( GetOpenFileName( &ofn ))
+        case WM_TIMER:
+            switch (wParam)
             {
-                open_wav( file_path );
-                EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVE, MF_ENABLED );
-                EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVEAS, MF_ENABLED );
-
-                EnableWindow( slider, TRUE );
-
+                case 1: 
+                    if (stopped_flag)
+                    {
+                        KillTimer(hWnd, 1);
+                        KillTimer(hWnd, WAVEBAR_TIMERID);
+                        slider_pos = 0;
+                        enable_but(BUTPLAY_ID);
+                        stopped_flag = FALSE;
+                    }
+
+                    SendMessage(slider, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)slider_pos);
+                    InvalidateRect(hWnd, &text_rect, TRUE);
+                    break;
+
+                case WAVEBAR_TIMERID:
+                    InvalidateRect(wave_win, 0, TRUE);
+                    SendMessage(wave_win, WM_USER, 0, 0);
+                    break;
             }
-
-            InvalidateRect( hWnd, &text_rect, TRUE );
-            InvalidateRect( hWnd, &text2_rect, TRUE );
-
             break;
 
+        case WM_PAINT:
+            hdc = BeginPaint(hWnd, &ps);
+            font = CreateFontIndirect(&s_info.lfMenuFont);
+            SelectObject(hdc, font);
+            SetBkMode(hdc, TRANSPARENT);
 
-
-
-        case ID__ABOUT:
-            
-            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, AboutDlgProc);
-            return TRUE;
-            break;
-
-
-        case ID_FILE_SAVEAS:
-
-            ZeroMemory( &ofn, sizeof( ofn ));
-
-            ofn.lStructSize = sizeof( ofn );
-            ofn.hwndOwner         = hWnd ;
-            ofn.Flags             = OFN_OVERWRITEPROMPT;
-            ofn.lpstrFilter = TEXT("Audio Files (*.wav)\0*.wav\0All Files (*.*)\0*.*\0");
-            ofn.lpstrFile = file_path;
-            ofn.nMaxFile = MAX_PATH;
-            
-            ofn.lpstrDefExt = TEXT("wav");
-     
-            if ( GetSaveFileName ( &ofn )) 
+            if (AUD_IN->current_status() == snd::WAVEIN_RECORDING)
             {
-                write_wav( file_path );
+                gprintf(str_tmp,
+                        MAX_LOADSTRING,
+                        str_pos,
+                        (float)((float)AUD_BUF->bytes_recorded() / (float)AUD_BUF->audinfo().byte_rate()));
 
-                EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVE, MF_ENABLED );
             }
-
-            break;
-
-        case ID_EXIT:
-            DestroyWindow( hWnd );
-            break;
-
-
-            //
-            // Sndrec32 buttons routines
-            //
-
-        case BUTSTART_ID:
-
-            AUD_BUF->set_position_start();
-
-            slider_pos = 0;
-
-            SendMessage( slider, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) slider_pos );
-
-            break;
-
-
-        case BUTEND_ID:
-            DestroyWindow( hWnd );
-            break;
-
-        case BUTPLAY_ID:
-            
-            if ( wout_first == false )
+            else if (AUD_OUT->current_status() == snd::WAVEOUT_PLAYING)
             {
-                AUD_OUT->open();
-                wout_first = true;
+                gprintf(str_tmp,
+                        MAX_LOADSTRING,
+                        str_pos,
+                        (float)((float)AUD_BUF->bytes_played() / (float)AUD_BUF->audinfo().byte_rate()));
             }
-
-
-            AUD_OUT->play();
-
-            disable_but( BUTSTART_ID );
-            disable_but( BUTEND_ID );
-            disable_but( BUTREC_ID );
-            disable_but( BUTPLAY_ID );
-
-
-            SetTimer( hWnd, 1, 250, 0 );
-            SetTimer( hWnd, WAVEBAR_TIMERID, WAVEBAR_TIMERTIME, 0 );
-
-            break;
-
-        case BUTSTOP_ID:
-            if ( s_recording )
+            else
             {
-                s_recording = FALSE;
-
-                AUD_IN->stop_recording();
-
-                
-
-                //
-                // Resetting slider position
-                //
-                
-                slider_pos = 0;
-                SendMessage(slider, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) slider_pos);
-
-
-                samples_max = AUD_BUF->samples_received();
-
-                EnableMenuItem((HMENU)IDR_MENU1, ID_FILE_SAVEAS, MF_ENABLED );
-
-
-                enable_but( BUTSTART_ID );
-                enable_but( BUTEND_ID );
-                enable_but( BUTREC_ID );
-                enable_but( BUTPLAY_ID );
-
-                EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVEAS, MF_ENABLED );
-                EnableWindow( slider, TRUE );
-
-                display_dur = FALSE;
-
-                AUD_BUF->truncate();
-
-                InvalidateRect( hWnd, &text_rect, TRUE );
-                InvalidateRect( wave_win, 0, TRUE );
-
-
-            } else {
-
-                AUD_OUT->pause();
-
-                enable_but( BUTSTART_ID );
-                enable_but( BUTEND_ID );
-                enable_but( BUTREC_ID );
-                enable_but( BUTPLAY_ID );
-
+                gprintf(str_tmp,
+                        MAX_LOADSTRING,
+                        str_pos,
+                        (float)((((float)slider_pos * (float)samples_max) / (float)slider_max) / (float)AUD_BUF->audinfo().sample_rate()));
             }
 
-            KillTimer( hWnd, 1 );
-            KillTimer( hWnd, WAVEBAR_TIMERID );
+            ExtTextOut(hdc,
+                       STRPOS_X,
+                       STRPOS_Y,
+                       ETO_OPAQUE,
+                       0,
+                       str_tmp,
+                       _tcslen(str_tmp),
+                       0);
 
-            InvalidateRect( hWnd, &text_rect, TRUE );
-            
-            break;
-
-        case BUTREC_ID:
-
-            if ( win_first == false )
+            if (display_dur)
             {
-                AUD_IN->open();
-                win_first = true;
+                gprintf(str_tmp,
+                        MAX_LOADSTRING,
+                        str_dur,
+                        AUD_BUF->fseconds_total());
             }
-
-            s_recording = TRUE;
-
-            samples_max = AUD_BUF->total_samples();
-
-            AUD_IN->start_recording();
-
-            enable_but( BUTSTOP_ID );
-
-            disable_but( BUTSTART_ID );
-            disable_but( BUTEND_ID );
-            disable_but( BUTREC_ID );
-            disable_but( BUTPLAY_ID );
-
-            isnew = FALSE;
-
-            EnableWindow( slider, FALSE );
-
-            SetTimer( hWnd, 1, 150, 0 );
-
-            SetTimer( hWnd, WAVEBAR_TIMERID, WAVEBAR_TIMERTIME, 0 );
-
-            break;
-
-
-        default:
-            return DefWindowProc(hWnd, message, wParam, lParam);
-        }
-        break;
-
-
-    case WM_TIMER:
-
-        switch ( wParam )
-        {
-
-        case 1: 
-            if ( stopped_flag )
+            else
             {
-                KillTimer( hWnd, 1 );
-                KillTimer( hWnd, WAVEBAR_TIMERID );
-                slider_pos = 0;
-
-                enable_but( BUTPLAY_ID );
-
-                stopped_flag = FALSE;
+                gprintf(str_tmp,
+                        MAX_LOADSTRING,
+                        str_dur,
+                        AUD_BUF->fseconds_recorded());
             }
 
+            ExtTextOut(hdc,
+                       STRDUR_X,
+                       STRDUR_Y,
+                       ETO_OPAQUE,
+                       0,
+                       str_tmp,
+                       _tcslen(str_tmp),
+                       0);
 
-
-            SendMessage( 
-                        slider, 
-                        TBM_SETPOS, 
-                        ( WPARAM ) TRUE, 
-                        ( LPARAM ) slider_pos 
-                    );
-
-            InvalidateRect( hWnd, &text_rect, TRUE );
-            break;
-
-
-
-        case WAVEBAR_TIMERID:
-            InvalidateRect( wave_win, 0, TRUE );
-            SendMessage( wave_win, WM_USER, 0, 0 );
-            break;
-
-        }
-
-        break;
-
-
-
-    case WM_PAINT:
-
-
-        hdc = BeginPaint(hWnd, &ps);
-
-
-        font = CreateFontIndirect( &s_info.lfMenuFont );
-
-
-        SelectObject( hdc, font );
-
-        SetBkMode( hdc, TRANSPARENT );
-
-
-        if ( AUD_IN->current_status() == snd::WAVEIN_RECORDING )
-        {
-            gprintf(
-                    str_tmp,
-                    MAX_LOADSTRING,
-                    str_pos,
-                    ( float )(( float )AUD_BUF->bytes_recorded( ) / ( float )AUD_BUF->audinfo().byte_rate( ))
-                );
-
-        } else if ( AUD_OUT->current_status() == snd::WAVEOUT_PLAYING ) {
-
-            gprintf(
-                    str_tmp,
-                    MAX_LOADSTRING,
-                    str_pos,
-                    ( float )(( float )AUD_BUF->bytes_played() / ( float )AUD_BUF->audinfo().byte_rate( ))
-                );
-
-        } else {
-
-            gprintf(
-                    str_tmp,
-                    MAX_LOADSTRING,
-                    str_pos,
-                    ( float )(((( float )slider_pos * ( float )samples_max ) / ( float )slider_max ) / ( float )AUD_BUF->audinfo().sample_rate())
-                );
-        }
-
-
-        ExtTextOut( hdc, STRPOS_X, STRPOS_Y, ETO_OPAQUE, 
-                    0, str_tmp, _tcslen( str_tmp ), 0 );
-
-
-        if ( display_dur )
-        {
-
-            gprintf( str_tmp, MAX_LOADSTRING, str_dur, 
-                                AUD_BUF->fseconds_total( ));
-        
-        } else {
-
-
-            gprintf( str_tmp, MAX_LOADSTRING, str_dur, 
-                                AUD_BUF->fseconds_recorded( ));
-        }
-
-
-
-        ExtTextOut( hdc, STRDUR_X, STRDUR_Y, ETO_OPAQUE, 
-                    0, str_tmp, _tcslen( str_tmp ), 0 );
-       
-
-
-        gprintf(
-                    str_tmp,
+            gprintf(str_tmp,
                     MAX_LOADSTRING,
                     str_buf,
-                    ( float )(( float )AUD_BUF->mem_size() / 1024.0f )
-                );
-
-
-        ExtTextOut( hdc, STRBUF_X, STRBUF_Y, ETO_OPAQUE, 
-                    0, str_tmp, _tcslen( str_tmp ), 0 );
-
-
-
-        gprintf(
-                    str_tmp,
+                    (float)((float)AUD_BUF->mem_size() / 1024.0f));
+
+            ExtTextOut(hdc,
+                       STRBUF_X,
+                       STRBUF_Y,
+                       ETO_OPAQUE, 
+                       0,
+                       str_tmp,
+                       _tcslen(str_tmp),
+                       0);
+
+            gprintf(str_tmp,
                     MAX_LOADSTRING,
                     str_fmt,
-                    ( float )(( float )AUD_BUF->audinfo().sample_rate() / 1000.0f ),
+                    (float)((float)AUD_BUF->audinfo().sample_rate() / 1000.0f),
                     AUD_BUF->audinfo().bits(),
-                    AUD_BUF->audinfo().channels() == 2 ? str_mono : str_stereo
-                );
-
-
-        ExtTextOut( hdc, STRFMT_X, STRFMT_Y, ETO_OPAQUE, 
-                    0, str_tmp, _tcslen( str_tmp ), 0 );
-
-
-
-        gprintf(
-                    str_tmp,
+                    AUD_BUF->audinfo().channels() == 2 ? str_mono : str_stereo);
+
+            ExtTextOut(hdc,
+                       STRFMT_X,
+                       STRFMT_Y,
+                       ETO_OPAQUE,
+                       0,
+                       str_tmp,
+                       _tcslen(str_tmp),
+                       0);
+
+            gprintf(str_tmp,
                     MAX_LOADSTRING,
                     str_chan,
-                    AUD_BUF->audinfo().channels() == 2 ? str_stereo : str_mono
-                );
-
-
-        ExtTextOut( hdc, STRCHAN_X, STRCHAN_Y, ETO_OPAQUE, 
-                    0, str_tmp, _tcslen( str_tmp ), 0 );
-
-        
-
-        DeleteObject( font );
-
-        EndPaint(hWnd, &ps);
-
-
-        break;
-
-
-
+                    AUD_BUF->audinfo().channels() == 2 ? str_stereo : str_mono);
+
+            ExtTextOut(hdc,
+                       STRCHAN_X,
+                       STRCHAN_Y,
+                       ETO_OPAQUE,
+                       0,
+                       str_tmp,
+                       _tcslen(str_tmp),
+                       0);
+
+            DeleteObject(font);
+            EndPaint(hWnd, &ps);
+            break;
 
-    case WM_DESTROY:
-        PostQuitMessage(0);
-        break;
-    default:
-        return DefWindowProc( hWnd, message, wParam, lParam );
+        case WM_DESTROY:
+            PostQuitMessage(0);
+            break;
+        default:
+            return DefWindowProc(hWnd, message, wParam, lParam);
     }
+
     return 0;
 }
 
-
-
-
-
-void l_play_finished ( void )
+void l_play_finished(void)
 {
-
     stopped_flag = true;
 
+    enable_but(BUTSTART_ID);
+    enable_but(BUTEND_ID);
+    enable_but(BUTREC_ID);
+    enable_but(BUTPLAY_ID);
 
-    enable_but( BUTSTART_ID );
-    enable_but( BUTEND_ID );
-    enable_but( BUTREC_ID );
-    enable_but( BUTPLAY_ID );
-
-    InvalidateRect( wave_win, 0, TRUE );
-
+    InvalidateRect(wave_win, 0, TRUE);
 }
 
-void l_audio_arrival ( unsigned int samples_arrival )
+void l_audio_arrival(unsigned int samples_arrival)
 {
-
-
-    slider_pos += ( DWORD ) (( slider_max * samples_arrival ) / samples_max );
-    
-
+    slider_pos += (DWORD)((slider_max * samples_arrival) / samples_max);
 }
 
-void l_buffer_resized ( unsigned int new_size )
+void l_buffer_resized(unsigned int new_size)
 {
-
-
-
-
-
 }
 
-VOID enable_but( DWORD id )
+VOID enable_but(DWORD id)
 {
-
-    butdisabled[ id ] = FALSE;
-
-    SendMessage(buttons[ id ], BM_SETIMAGE, ( WPARAM )IMAGE_BITMAP, ( LPARAM )butbmps[ id ]);
-
-
+    butdisabled[id] = FALSE;
+    SendMessage(buttons[id], BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)butbmps[id]);
 }
-VOID disable_but( DWORD id )
-{
-
-    butdisabled[ id ] = TRUE;
-
-    SendMessage(buttons[ id ], BM_SETIMAGE, ( WPARAM )IMAGE_BITMAP, ( LPARAM )butbmps_dis[ id ]);
 
+VOID disable_but(DWORD id)
+{
+    butdisabled[id] = TRUE;
+    SendMessage(buttons[id], BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)butbmps_dis[id]);
 }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-BOOL open_wav( TCHAR * f )
+BOOL open_wav(TCHAR *f)
 {
-
-
     HANDLE file;
-    
+
     riff_hdr r;
     wave_hdr w;
     data_chunk d;
@@ -1230,160 +926,116 @@ BOOL open_wav( TCHAR * f )
     DWORD bytes_recorded_in_wav = 0;
     DWORD is_read = 0;
 
-
-    file = CreateFile( 
-                    f, 
-                    GENERIC_READ, 
-                    0, 0,
-                    OPEN_EXISTING,
-                    FILE_ATTRIBUTE_NORMAL, 
-                    0 
-                );
-
-
-
-    if ( !file )
+    file = CreateFile(f,
+                      GENERIC_READ,
+                      0,
+                      0,
+                      OPEN_EXISTING,
+                      FILE_ATTRIBUTE_NORMAL,
+                      0);
+    if (!file)
     {
-        MessageBox( 
-                    main_win, 
-                    TEXT("Cannot open file. CreateFile() error."), 
-                    TEXT("ERROR"), 
-                    MB_OK|MB_ICONERROR
-                );
+        MessageBox(main_win,
+                   TEXT("Cannot open file. CreateFile() error."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
 
         return FALSE;
     }
 
-
-    b = ReadFile( file, ( LPVOID ) &r, sizeof ( r ), &is_read, 0 );
-
-    if ( !b )
+    b = ReadFile(file, (LPVOID)&r, sizeof(r), &is_read, 0);
+    if (!b)
     {
-        MessageBox( 
-                    main_win, 
-                    TEXT("Cannot read RIFF header."), 
-                    TEXT("ERROR"), 
-                    MB_OK|MB_ICONERROR
-                );
-
-        CloseHandle( file );
+        MessageBox(main_win,
+                   TEXT("Cannot read RIFF header."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
+
+        CloseHandle(file);
         return FALSE;
     }
 
-
-    b = ReadFile( file, ( LPVOID ) &w, sizeof ( w ), &is_read, 0 );
-
-
-    if ( !b )
+    b = ReadFile(file, (LPVOID)&w, sizeof(w), &is_read, 0);
+    if (!b)
     {
-        MessageBox( 
-                    main_win, 
-                    TEXT("Cannot read WAVE header."), 
-                    TEXT("ERROR"), 
-                    MB_OK|MB_ICONERROR
-                );
-
-        CloseHandle( file );
+        MessageBox(main_win,
+                   TEXT("Cannot read WAVE header."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
+
+        CloseHandle(file);
         return FALSE;
     }
 
-
-
-    b = ReadFile( file, ( LPVOID ) &d, sizeof ( d ), &is_read, 0 );
-
-    if ( !b )
+    b = ReadFile(file, (LPVOID)&d, sizeof(d), &is_read, 0);
+    if (!b)
     {
-        MessageBox( 
-                    main_win, 
-                    TEXT("Cannot read WAVE subchunk."), 
-                    TEXT("ERROR"), 
-                    MB_OK|MB_ICONERROR
-                );
-
-        CloseHandle( file );
+        MessageBox(main_win,
+                   TEXT("Cannot read WAVE subchunk."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
+
+        CloseHandle(file);
         return FALSE;
     }
 
     bytes_recorded_in_wav = r.chunksize - 36;
-
-
-    if ( bytes_recorded_in_wav == 0 )
+    if (bytes_recorded_in_wav == 0)
     {
-        MessageBox( 
-                    main_win, 
-                    TEXT("Cannot read file. No audio data."), 
-                    TEXT("ERROR"), 
-                    MB_OK|MB_ICONERROR
-                );
-
-        CloseHandle( file );
+        MessageBox(main_win,
+                   TEXT("Cannot read file. No audio data."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
+
+        CloseHandle(file);
         return FALSE;
     }
 
-
-    snd::audio_format openfmt
-        ( w.SampleRate, w.BitsPerSample, w.NumChannels );
-
-
+    snd::audio_format openfmt(w.SampleRate, w.BitsPerSample, w.NumChannels);
 
     AUD_BUF->clear();
+    AUD_BUF->alloc_bytes(bytes_recorded_in_wav);
 
+    b = ReadFile(file,
+                 (LPVOID)AUD_BUF->audio_buffer(),
+                 bytes_recorded_in_wav,
+                 &is_read,
+                 0);
 
-    AUD_BUF->alloc_bytes( bytes_recorded_in_wav );
-
-
-    b = ReadFile(
-                file, 
-                ( LPVOID ) AUD_BUF->audio_buffer(), 
-                bytes_recorded_in_wav,
-                &is_read,
-                0
-            );
-
+    AUD_BUF->set_b_received(bytes_recorded_in_wav);
 
-    AUD_BUF->set_b_received( bytes_recorded_in_wav );
-
-
-    if (( !b ) || ( is_read != bytes_recorded_in_wav ))
+    if ((!b) || (is_read != bytes_recorded_in_wav))
     {
-        MessageBox( 
-                    main_win, 
-                    TEXT("Cannot read file. Error reading audio data."), 
-                    TEXT("ERROR"), 
-                    MB_OK|MB_ICONERROR
-                );
+        MessageBox(main_win,
+                   TEXT("Cannot read file. Error reading audio data."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
 
-        CloseHandle( file );
+        CloseHandle(file);
 
         AUD_BUF->reset();
         return FALSE;
     }
 
-    CloseHandle( file );
-
-    enable_but( BUTPLAY_ID );
-    enable_but( BUTSTOP_ID );
-    enable_but( BUTSTART_ID );
-    enable_but( BUTEND_ID );
-    enable_but( BUTREC_ID );
+    CloseHandle(file);
 
+    enable_but(BUTPLAY_ID);
+    enable_but(BUTSTOP_ID);
+    enable_but(BUTSTART_ID);
+    enable_but(BUTEND_ID);
+    enable_but(BUTREC_ID);
 
     samples_max = AUD_BUF->samples_received();
 
     isnew = FALSE;
 
     return TRUE;
-
 }
 
-
 BOOL
-write_wav( TCHAR * f )
+write_wav(TCHAR *f)
 {
-
     HANDLE file;
-    
-    
     DWORD written;
     BOOL is_writ;
     int i;
@@ -1391,71 +1043,36 @@ write_wav( TCHAR * f )
     wave_hdr w;
     data_chunk d;
 
-
-
-    file = CreateFile( 
-                    f, 
-                    GENERIC_WRITE, 
-                    0, 0,
-                    CREATE_NEW,
-                    FILE_ATTRIBUTE_NORMAL, 
-                    0 
-                );
-
-
-
-    if ( !file )
+    file = CreateFile(f, GENERIC_WRITE, 0, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
+    if (!file)
     {
-        i = MessageBox( 
-                    main_win, 
-                    TEXT("File already exist. Overwrite it?"), 
-                    TEXT("Warning"), 
-                    MB_YESNO|MB_ICONQUESTION
-                );
-
-        if ( i == IDYES )
-        {
+        i = MessageBox(main_win,
+                       TEXT("File already exist. Overwrite it?"),
+                       TEXT("Warning"),
+                       MB_YESNO | MB_ICONQUESTION);
 
-            file = CreateFile( 
-                            f, 
-                            GENERIC_WRITE, 
-                            0, 0,
-                            CREATE_ALWAYS,
-                            FILE_ATTRIBUTE_NORMAL, 
-                            0 
-                        );
-
-            if ( !file )
+        if (i == IDYES)
+        {
+            file = CreateFile(f, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
+            if (!file)
             {
-                MessageBox( 
-                        main_win, 
-                        TEXT("File Error, CreateFile() failed."), 
-                        TEXT("ERROR"), 
-                        MB_OK|MB_ICONERROR
-                    );
-
+                MessageBox(main_win,
+                           TEXT("File Error, CreateFile() failed."),
+                           TEXT("ERROR"),
+                           MB_OK | MB_ICONERROR);
 
                 return FALSE;
-
             }
 
-
         } else
             return FALSE;
     }
 
-
-    
-                        
     r.magic = 0x46464952;
-
-                            
     r.format = 0x45564157;
     r.chunksize = 36 + AUD_BUF->bytes_recorded();
 
-                            
     w.Subchunkid = 0x20746d66;
-
     w.Subchunk1Size = 16;
     w.AudioFormat = 1;
     w.NumChannels = AUD_BUF->audinfo().channels();
@@ -1464,98 +1081,62 @@ write_wav( TCHAR * f )
     w.BlockAlign = AUD_BUF->audinfo().block_align();
     w.BitsPerSample = AUD_BUF->audinfo().bits();
 
-                            
     d.subc = 0x61746164;
     d.subc_size = AUD_BUF->bytes_recorded();
 
-
-
-    //
-    // Writing headers
-    //
-
-    
-    is_writ = WriteFile( file, ( LPCVOID ) &r, sizeof ( r ), &written, 0 );
-
-    if ( !is_writ )
+    /* Writing headers */
+    is_writ = WriteFile(file, (LPCVOID)&r, sizeof(r), &written, 0);
+    if (!is_writ)
     {
-        MessageBox( 
-                main_win, 
-                TEXT("File Error, WriteFile() failed."), 
-                TEXT("ERROR"), 
-                MB_OK|MB_ICONERROR
-            );
-        
-        CloseHandle( file );
+        MessageBox(main_win,
+                   TEXT("File Error, WriteFile() failed."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
 
+        CloseHandle(file);
         return FALSE;
-
     }
 
-
-    is_writ = WriteFile( file, ( LPCVOID ) &w, sizeof ( w ), &written, 0 );
-
-    if ( !is_writ )
+    is_writ = WriteFile(file, (LPCVOID)&w, sizeof(w), &written, 0);
+    if (!is_writ)
     {
-        MessageBox( 
-                main_win, 
-                TEXT("File Error, WriteFile() failed."), 
-                TEXT("ERROR"), 
-                MB_OK|MB_ICONERROR
-            );
+        MessageBox(main_win,
+                   TEXT("File Error, WriteFile() failed."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
         
-        CloseHandle( file );
-
+        CloseHandle(file);
         return FALSE;
-
     }
 
-
-    is_writ = WriteFile( file, ( LPCVOID ) &d, sizeof ( d ), &written, 0 );
-
-
-    if ( !is_writ )
+    is_writ = WriteFile(file, (LPCVOID)&d, sizeof(d), &written, 0);
+    if (!is_writ)
     {
-        MessageBox( 
-                main_win, 
-                TEXT("File Error, WriteFile() failed."), 
-                TEXT("ERROR"), 
-                MB_OK|MB_ICONERROR
-            );
+        MessageBox(main_win,
+                   TEXT("File Error, WriteFile() failed."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
         
-        CloseHandle( file );
-
+        CloseHandle(file);
         return FALSE;
-
     }
 
-
-    
-    is_writ = WriteFile( 
-                    file, 
-                    ( LPCVOID ) AUD_BUF->audio_buffer(), 
-                    AUD_BUF->bytes_recorded(), 
-                    &written, 
-                    0 
-                );
-
-    if ( !is_writ )
+    is_writ = WriteFile(file,
+                        (LPCVOID)AUD_BUF->audio_buffer(),
+                        AUD_BUF->bytes_recorded(),
+                        &written,
+                        0);
+    if (!is_writ)
     {
-        MessageBox( 
-                main_win, 
-                TEXT("File Error, WriteFile() failed."), 
-                TEXT("ERROR"), 
-                MB_OK|MB_ICONERROR
-            );
-
-        CloseHandle( file );
-        
-        return FALSE;
+        MessageBox(main_win,
+                   TEXT("File Error, WriteFile() failed."),
+                   TEXT("ERROR"),
+                   MB_OK | MB_ICONERROR);
 
+        CloseHandle(file);
+        return FALSE;
     }
 
-
-    CloseHandle( file );
-
+    CloseHandle(file);
     return TRUE;
 }
index d48d67d..2ac41f5 100644 (file)
 #define BUTTONS_H 30
 #define BUTTONS_W 60
 #define BUTTONS_CY 100
-#define BUTTONS_CX ( CONTROLS_CX )
+#define BUTTONS_CX (CONTROLS_CX)
 #define BUTTONS_SPACE 5
 
-
-
 #define SLIDER_CX CONTROLS_CX
 #define SLIDER_CY 65
 #define SLIDER_H 30
 #define SLIDER_W 320
 
-
 #define STRPOS_X 240
 #define STRPOS_Y 5
 
-#define STRDUR_X ( STRPOS_X )
-#define STRDUR_Y ( STRPOS_Y + 13 )
-
-#define STRBUF_X ( STRDUR_X )
-#define STRBUF_Y ( STRDUR_Y + 13 )
+#define STRDUR_X (STRPOS_X)
+#define STRDUR_Y (STRPOS_Y + 13)
 
+#define STRBUF_X (STRDUR_X)
+#define STRBUF_Y (STRDUR_Y + 13)
 
 #define STRFMT_X 10
-#define STRFMT_Y ( STRPOS_Y )
-
-#define STRCHAN_X ( STRFMT_X )
-#define STRCHAN_Y ( STRFMT_Y + 13 )
+#define STRFMT_Y (STRPOS_Y)
 
+#define STRCHAN_X (STRFMT_X)
+#define STRCHAN_Y (STRFMT_Y + 13)
 
-#define WAVEBAR_X ( CONTROLS_CX + 90 )
-#define WAVEBAR_Y ( STRPOS_Y )
+#define WAVEBAR_X (CONTROLS_CX + 90)
+#define WAVEBAR_Y (STRPOS_Y)
 #define WAVEBAR_CX 130
 #define WAVEBAR_CY 50
 
 #define WAVEBAR_TIMERID 2
 #define WAVEBAR_TIMERTIME 80
 
-#define WAVEBAR_COLOR ( RGB( 0, 0, 255 ))
+#define WAVEBAR_COLOR (RGB(0, 0, 255))
 
-#define REFRESHA_X ( STRPOS_X )
-#define REFRESHA_Y ( STRPOS_Y )
-#define REFRESHA_CX ( REFRESHA_X + 100 )
-#define REFRESHA_CY ( REFRESHA_Y + 55 )
-
-
-#define REFRESHB_X ( STRFMT_X )
-#define REFRESHB_Y ( STRFMT_Y )
-#define REFRESHB_CX ( REFRESHB_X + 85 )
-#define REFRESHB_CY ( REFRESHB_Y + 55 )
+#define REFRESHA_X (STRPOS_X)
+#define REFRESHA_Y (STRPOS_Y)
+#define REFRESHA_CX (REFRESHA_X + 100)
+#define REFRESHA_CY (REFRESHA_Y + 55)
 
+#define REFRESHB_X (STRFMT_X)
+#define REFRESHB_Y (STRFMT_Y)
+#define REFRESHB_CX (REFRESHB_X + 85)
+#define REFRESHB_CY (REFRESHB_Y + 55)
 
 struct riff_hdr
 {
@@ -87,10 +80,8 @@ struct riff_hdr
     DWORD format;
 };
 
-
 struct wave_hdr
 {
-    
     DWORD Subchunkid;
     DWORD Subchunk1Size;
     WORD AudioFormat;
@@ -108,32 +99,15 @@ struct data_chunk
     //unsigned char data[];
 };
 
+/* Functions prototypes */
 
+LRESULT CALLBACK Buttons_proc(HWND, UINT, WPARAM, LPARAM);
 
-//
-// Functions prototypes
-//
-LRESULT CALLBACK 
-Buttons_proc(HWND, UINT, WPARAM, LPARAM);
-
-
-BOOL
-write_wav( TCHAR * );
-
-BOOL
-open_wav( TCHAR * );
-
-
-VOID enable_but( DWORD );
-VOID disable_but( DWORD );
-
-
-
-void 
-l_play_finished ( void );
-
-void 
-l_audio_arrival ( unsigned int );
+BOOL write_wav(TCHAR *);
+BOOL open_wav(TCHAR *);
+VOID enable_but(DWORD);
+VOID disable_but(DWORD);
 
-void 
-l_buffer_resized ( unsigned int );
+void l_play_finished(void);
+void l_audio_arrival(unsigned int);
+void l_buffer_resized(unsigned int);
index 4e622e4..d669203 100644 (file)
@@ -3,9 +3,9 @@
 //#include "targetver.h"
 
 #ifdef _UNICODE
-       #define _sntprintf_s    _snwprintf_s
+#define _sntprintf_s _snwprintf_s
 #else
-       #define _sntprintf_s    _snprintf_s
+#define _sntprintf_s _snprintf_s
 #endif
 
 #define WIN32_NO_STATUS
index 1b8dc07..c3f11c9 100644 (file)
@@ -7,11 +7,11 @@
 
 #pragma once
 
-#ifndef WINVER                         
-#define WINVER 0x0600           
+#ifndef WINVER
+#define WINVER 0x0600
 #endif
 
-#ifndef _WIN32_WINNT         
+#ifndef _WIN32_WINNT
 #define _WIN32_WINNT 0x0600
 #endif