static void string_rdwr_test (const char *filename, int typemajor) { SNDFILE *file ; SF_INFO sfinfo ; sf_count_t frames ; const char * str ; print_test_name (__func__, filename) ; create_short_sndfile (filename, typemajor | SF_FORMAT_PCM_16, 2) ; memset (&sfinfo, 0, sizeof (sfinfo)) ; file = test_open_file_or_die (filename, SFM_RDWR, &sfinfo, SF_FALSE, __LINE__) ; frames = sfinfo.frames ; sf_set_string (file, SF_STR_TITLE, title) ; sf_close (file) ; file = test_open_file_or_die (filename, SFM_READ, &sfinfo, SF_FALSE, __LINE__) ; exit_if_true (frames != sfinfo.frames, "\n\nLine %d : Frame count %" PRId64 " should be %" PRId64 ".\n", __LINE__, sfinfo.frames, frames) ; str = sf_get_string (file, SF_STR_TITLE) ; exit_if_true (str == NULL, "\n\nLine %d : SF_STR_TITLE string is NULL.\n", __LINE__) ; exit_if_true (strcmp (str, title) != 0, "\n\nLine %d : SF_STR_TITLE doesn't match what was written.\n", __LINE__) ; sf_close (file) ; file = test_open_file_or_die (filename, SFM_RDWR, &sfinfo, SF_FALSE, __LINE__) ; frames = sfinfo.frames ; sf_set_string (file, SF_STR_TITLE, title) ; sf_close (file) ; file = test_open_file_or_die (filename, SFM_RDWR, &sfinfo, SF_FALSE, __LINE__) ; str = sf_get_string (file, SF_STR_TITLE) ; exit_if_true (str == NULL, "\n\nLine %d : SF_STR_TITLE string is NULL.\n", __LINE__) ; sf_set_string (file, SF_STR_ARTIST, artist) ; sf_close (file) ; file = test_open_file_or_die (filename, SFM_READ, &sfinfo, SF_FALSE, __LINE__) ; str = sf_get_string (file, SF_STR_ARTIST) ; exit_if_true (str == NULL, "\n\nLine %d : SF_STR_ARTIST string is NULL.\n", __LINE__) ; exit_if_true (strcmp (str, artist) != 0, "\n\nLine %d : SF_STR_ARTIST doesn't match what was written.\n", __LINE__) ; str = sf_get_string (file, SF_STR_TITLE) ; exit_if_true (str == NULL, "\n\nLine %d : SF_STR_TITLE string is NULL.\n", __LINE__) ; exit_if_true (strcmp (str, title) != 0, "\n\nLine %d : SF_STR_TITLE doesn't match what was written.\n", __LINE__) ; exit_if_true (frames != sfinfo.frames, "\n\nLine %d : Frame count %" PRId64 " should be %" PRId64 ".\n", __LINE__, sfinfo.frames, frames) ; sf_close (file) ; unlink (filename) ; puts ("ok") ; } /* string_rdwr_test */
static void broadcast_rdwr_test (const char *filename, int filetype) { SF_BROADCAST_INFO binfo ; SNDFILE *file ; SF_INFO sfinfo ; sf_count_t frames ; print_test_name (__func__, filename) ; create_short_sndfile (filename, filetype, 2) ; memset (&sfinfo, 0, sizeof (sfinfo)) ; memset (&binfo, 0, sizeof (binfo)) ; snprintf (binfo.description, sizeof (binfo.description), "Test description") ; snprintf (binfo.originator, sizeof (binfo.originator), "Test originator") ; snprintf (binfo.originator_reference, sizeof (binfo.originator_reference), "%08x-%08x", (unsigned int) time (NULL), (unsigned int) (~ time (NULL))) ; snprintf (binfo.origination_date, sizeof (binfo.origination_date), "%d/%02d/%02d", 2006, 3, 30) ; snprintf (binfo.origination_time, sizeof (binfo.origination_time), "%02d:%02d:%02d", 20, 27, 0) ; snprintf (binfo.umid, sizeof (binfo.umid), "Some umid") ; binfo.coding_history_size = 0 ; file = test_open_file_or_die (filename, SFM_RDWR, &sfinfo, SF_TRUE, __LINE__) ; frames = sfinfo.frames ; if (sf_command (file, SFC_SET_BROADCAST_INFO, &binfo, sizeof (binfo)) != SF_FALSE) { printf ("\n\nLine %d : sf_command (SFC_SET_BROADCAST_INFO) should have failed but didn't.\n\n", __LINE__) ; exit (1) ; } ; sf_close (file) ; file = test_open_file_or_die (filename, SFM_READ, &sfinfo, SF_TRUE, __LINE__) ; sf_close (file) ; exit_if_true (frames != sfinfo.frames, "\n\nLine %d : Frame count %lld should be %lld.\n", __LINE__, sfinfo.frames, frames) ; unlink (filename) ; puts ("ok") ; } /* broadcast_rdwr_test */