# HG changeset patch # User Robert McIntyre # Date 1319204675 25200 # Node ID 95cdedd01422934ef9dc2e33953aabd475a789db # Parent c3248c71ae746bb00bd21e6bf24bbaf2101c81bb allow user to select number of seconds to convert diff -r c3248c71ae74 -r 95cdedd01422 Makefile --- a/Makefile Fri Oct 21 06:21:33 2011 -0700 +++ b/Makefile Fri Oct 21 06:44:35 2011 -0700 @@ -1,6 +1,3 @@ - - - all : build/spc_convert build/spc_convert : snes_core demo_utils build/spc_convert.o @@ -18,12 +15,10 @@ build/wave_writer.o : demo/wave_writer.c g++ -c demo/wave_writer.c -o build/wave_writer.o - snes_core : build/dsp.o build/SNES_SPC.o build/SNES_SPC_misc.o \ build/SNES_SPC_state.o build/spc.o build/SPC_DSP.o \ build/SPC_Filter.o - build/dsp.o : snes_spc/dsp.cpp g++ -c snes_spc/dsp.cpp -o build/dsp.o @@ -45,10 +40,8 @@ build/SPC_Filter.o : snes_spc/SPC_Filter.cpp g++ -c snes_spc/SPC_Filter.cpp -o build/SPC_Filter.o - - - - clean: find . \( -name "*.o" -print0 \) -o \ - \( -name "spc" -print0 \) | xargs -t -0 rm \ No newline at end of file + \( -name "spc" -print0 \) -o \ + \( -name "*.wav" -print0 \) \ + | xargs -t -0 rm \ No newline at end of file diff -r c3248c71ae74 -r 95cdedd01422 convert/spc_convert.c --- a/convert/spc_convert.c Fri Oct 21 06:21:33 2011 -0700 +++ b/convert/spc_convert.c Fri Oct 21 06:44:35 2011 -0700 @@ -1,6 +1,6 @@ /* Records SPC into wave file. Uses dsp_filter to give more authentic sound. - Usage: play_spc [-s seconds] input.spc output.wav + Usage: spc_convert -s seconds -i input.spc -o output.wav */ #include "snes_spc/spc.h" @@ -14,12 +14,21 @@ SNES_SPC* snes_spc = spc_new(); SPC_Filter* filter = spc_filter_new(); if ( !snes_spc || !filter ) error( "Out of memory" ); - + + int seconds = atoi(argv[2]); + + if (seconds <=0){ + error("seconds must be positive."); + } + + if (argc != 7) { + error("Incorrect Arguments\n Sample invocation: \n spc_convert -s 5 -i input.spc -o output.wav"); + } /* Load SPC */ { /* Load file into memory */ long spc_size; - void* spc = load_file( (argc > 1) ? argv [1] : "test.spc", &spc_size ); + void* spc = load_file( argv[4] , &spc_size ); /* Load SPC data into emulator */ error( spc_load_spc( snes_spc, spc, spc_size ) ); @@ -33,9 +42,9 @@ } /* Record 20 seconds to wave file */ - wave_open( spc_sample_rate, "out.wav" ); + wave_open( spc_sample_rate, argv[6] ); wave_enable_stereo(); - while ( wave_sample_count() < 20 * spc_sample_rate * 2 ) + while ( wave_sample_count() < seconds * spc_sample_rate * 2 ) { /* Play into buffer */ #define BUF_SIZE 2048