Gugen展示版

Fork of MagneWave by kouzi osaki

Revision:
5:a1c57d771887
Parent:
4:8b4be75fd97a
Child:
6:d3e35dd7bfc5
--- a/MagneWave.cpp	Wed Nov 06 17:52:59 2013 +0000
+++ b/MagneWave.cpp	Thu Nov 07 11:17:35 2013 +0000
@@ -24,14 +24,14 @@
     // jump to wave data
     fseek( wavefile, DATA_OFFSET, SEEK_SET );
     
-    while( 1 ){
-        if( m_rptr != ( m_wptr + 1 ) & 0xff ){
+    while( m_dacOn ){
+        if( m_rptr != ( m_wptr + 1 ) & 0x7f ){
             size_t readSize = fread( (char *)m_fifo[m_wptr], 2, 1, wavefile); 
             if( readSize < 2 ){
                 m_fileEnd = true;
                 break;
             }
-            m_wptr = ( m_wptr + 1 ) & 0xff;
+            m_wptr = ( m_wptr + 1 ) & 0x7f;
         }
     }
 }
@@ -40,16 +40,13 @@
 {
     if ( m_dacOn ) {
         if( m_rptr != m_wptr ){
-            unsigned short tmpL = 0;
-            unsigned short tmpH = 0;
-            unsigned short dacVal16 = 0;
-            tmpL = ( m_fifo[ m_rptr ] >> 8) & 0x00ff;
-            tmpH = ( m_fifo[ m_rptr ] << 8) & 0xff00;
-        
-            dacVal16 = tmpH | tmpL;
+            unsigned short tmpL = ( m_fifo[ m_rptr ] >> 8) & 0x00ff;
+            unsigned short tmpH = ( m_fifo[ m_rptr ] << 8) & 0xff00;
+            short dacVal16 = tmpH | tmpL;
+            
             dacVal16 += DAC16_CENTER;
             m_wave_DAC->write_u16( dacVal16 );
-            m_rptr = ( m_rptr + 1 ) & 0xff;
+            m_rptr = ( m_rptr + 1 ) & 0x7f;
         }else{
             if( m_fileEnd ){
                 m_wptr = 0;