diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/command_test.c | 70 |
3 files changed, 56 insertions, 28 deletions
@@ -1,3 +1,16 @@ +2006-01-09 Erik de Castro Lopo <erikd AT mega-nerd DOT com> + + * src/sndfile.h.in src/aiff.c src/wav.c + Apply a patch from John Fitch (Csound project). + Add detune field to SF_INSTRUMENT struct. + Add reading/writing instrument chunks to WAV files. + + * tests/command_test.c + Update SF_INSTRUMENT tests. + + * tests/Makefile.am + Hook instrument tests into test suite. + 2006-01-05 Erik de Castro Lopo <erikd AT mega-nerd DOT com> * configure.ac diff --git a/tests/Makefile.am b/tests/Makefile.am index fe754cf..d2eb9a7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -165,6 +165,7 @@ generic-tests : error_test ulaw_test alaw_test command_test floating_point_test ./command_test format ./command_test peak ./command_test trunc + ./command_test inst ./floating_point_test ./scale_clip_test ./headerless_test diff --git a/tests/command_test.c b/tests/command_test.c index 828f02e..d39e0a0 100644 --- a/tests/command_test.c +++ b/tests/command_test.c @@ -600,11 +600,12 @@ truncate_test (const char *filename, int filetype) static void instrument_test (const char *filename, int filetype) { static SF_INSTRUMENT write_inst = - { 1, /* gain */ - 2, /* basenote */ - 3, 4, - 5, 6, - 2, /* loop_count */ + { 1, /* gain */ + 2, /* detune */ + 3, /* basenote */ + 4, 5, /* key low and high */ + 6, 7, /* velocity low and high */ + 2, /* loop_count */ { { 801, 2, 3, 0 }, { 801, 3, 4, 0 }, } @@ -632,22 +633,35 @@ instrument_test (const char *filename, int filetype) file = test_open_file_or_die (filename, SFM_READ, &sfinfo, SF_TRUE, __LINE__) ; if (sf_command (file, SFC_GET_INSTRUMENT, &read_inst, sizeof (read_inst)) == SF_FALSE) { printf ("\n\nLine %d : sf_command (SFC_GET_INSTRUMENT) failed.\n\n", __LINE__) ; - /*-exit (1) ;-*/ + exit (1) ; return ; } ; sf_close (file) ; + if ((filetype & SF_FORMAT_TYPEMASK) == SF_FORMAT_WAV) + { /* + ** For all the fields that WAV doesn't support, modify the + ** write_inst struct to hold the default value that the WAV + ** module should hold. + */ + write_inst.key_lo = write_inst.velocity_lo = 0 ; + write_inst.key_hi = write_inst.velocity_hi = 127 ; + write_inst.detune = 0 ; + } ; + if (memcmp (&write_inst, &read_inst, sizeof (write_inst)) != 0) { printf ("\n\nLine %d : instrument comparison failed.\n\n", __LINE__) ; - printf ("W Base Note : %u\tDetune : %u\n" - " Low Note : %u\tHigh Note : %u\n" - " Low Vel. : %u\tHigh Vel. : %u\n" - " Gain : %d\tCount : %d\n" - " mode : %d\n" - " start : %d\tend : %d\tcount :%d\n" - " mode : %d\n" - " start : %d\tend : %d\tcount :%d\n\n", - write_inst.basenote, 0, + printf ("W Base Note : %u\n" + " Detune : %u\n" + " Low Note : %u\tHigh Note : %u\n" + " Low Vel. : %u\tHigh Vel. : %u\n" + " Gain : %d\tCount : %d\n" + " mode : %d\n" + " start : %d\tend : %d\tcount :%d\n" + " mode : %d\n" + " start : %d\tend : %d\tcount :%d\n\n", + write_inst.basenote, + write_inst.detune, write_inst.key_lo, write_inst.key_hi, write_inst.velocity_lo, write_inst.velocity_hi, write_inst.gain, write_inst.loop_count, @@ -655,15 +669,17 @@ instrument_test (const char *filename, int filetype) write_inst.loops [0].end, write_inst.loops [0].count, write_inst.loops [1].mode, write_inst.loops [1].start, write_inst.loops [1].end, write_inst.loops [1].count) ; - printf ("R Base Note : %u\tDetune : %u\n" - " Low Note : %u\tHigh Note : %u\n" - " Low Vel. : %u\tHigh Vel. : %u\n" - " Gain : %d\tCount : %d\n" - " mode : %d\n" - " start : %d\tend : %d\tcount :%d\n" - " mode : %d\n" - " start : %d\tend : %d\tcount :%d\n\n", - read_inst.basenote, 0, + printf ("R Base Note : %u\n" + " Detune : %u\n" + " Low Note : %u\tHigh Note : %u\n" + " Low Vel. : %u\tHigh Vel. : %u\n" + " Gain : %d\tCount : %d\n" + " mode : %d\n" + " start : %d\tend : %d\tcount :%d\n" + " mode : %d\n" + " start : %d\tend : %d\tcount :%d\n\n", + read_inst.basenote, + read_inst.detune, read_inst.key_lo, read_inst.key_hi, read_inst.velocity_lo, read_inst.velocity_hi, read_inst.gain, read_inst.loop_count, @@ -671,10 +687,8 @@ instrument_test (const char *filename, int filetype) read_inst.loops [0].end, read_inst.loops [0].count, read_inst.loops [1].mode, read_inst.loops [1].start, read_inst.loops [1].end, read_inst.loops [1].count) ; - - if ((filetype & SF_FORMAT_TYPEMASK) == SF_FORMAT_AIFF) - exit (1) ; - return ; + + exit (1) ; } ; unlink (filename) ; |