Gugen展示版

Fork of MagneWave by kouzi osaki

MagneWave.cpp

Committer:
doctorura
Date:
2013-10-29
Revision:
1:a82b9af36dbf
Parent:
0:5a700113dd87
Child:
2:0fc5df933021

File content as of revision 1:a82b9af36dbf:

#include "MagneWave.h"

MagneWave::MagneWave( SoftMCP4922 *dac )
{
    m_wave_DAC = dac;
    m_wave_DAC->write_u16( 32768 );
}

void MagneWave::play( FILE *wavefile )
{
#if 0
    // data size check
    unsiged long dataSize = 0;
    seek( wavefile, 40, SEEK_SET );
    dataSize = fgetc( wavefile );
    dataSize |= ( fgetc( wavefile ) << 8 );
    dataSize |= ( fgetc( wavefile ) << 16 );
    dataSize |= ( fgetc( wavefile ) << 24 );
    printf("data size = %ld\n", dataSize );
#endif
    
    // jump to wave data
    fseek( wavefile, 44, SEEK_SET );
    
    while(1){
    //16bit
    /*
        int tmpL = 0;
        int tmpH = 0;
        unsigned short dacVal16 = 0;
        tmpL = fgetc( wavefile );
        if( tmpL == EOF ){
            break;
        }
        tmpH = fgetc( wavefile );
        if( tmpH == EOF ){
            break;
        }
        dacVal16 = tmpL;
        dacVal16 |= ( tmpH << 8 );
        m_wave_DAC->write_u16( dacVal16 );
    */
    
    // 8bit
        int dacVal8 = fgetc( wavefile );
        
        if( dacVal8 == EOF ){
            break;
        }
        m_wave_DAC->write_u8( ( unsigned short )dacVal8 );
        
        // TODO: adjust cycle
        wait_us(100);
    }
}