Gugen展示版
Fork of MagneWave by
Diff: MagneWave.cpp
- Revision:
- 5:a1c57d771887
- Parent:
- 4:8b4be75fd97a
- Child:
- 6:d3e35dd7bfc5
diff -r 8b4be75fd97a -r a1c57d771887 MagneWave.cpp --- 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;