diff options
author | Erik de Castro Lopo <erikd@mega-nerd.com> | 2008-09-09 21:12:59 +1000 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2008-09-09 21:12:59 +1000 |
commit | e95d2a9faa36f02be94abb28562c6cccf600d5ec (patch) | |
tree | 96a6d44882eaaebc039c277bb574048e91f03a31 /examples | |
parent | e9c25c254862ea57b0eb88a0da9dc107177b7b46 (diff) |
examples/sndfile-metadata-(get|set).c : Add handling for more metadata types.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/sndfile-metadata-get.c | 8 | ||||
-rw-r--r-- | examples/sndfile-metadata-set.c | 73 |
2 files changed, 47 insertions, 34 deletions
diff --git a/examples/sndfile-metadata-get.c b/examples/sndfile-metadata-get.c index 5993f3a..7dee5c8 100644 --- a/examples/sndfile-metadata-get.c +++ b/examples/sndfile-metadata-get.c @@ -138,9 +138,13 @@ process_args (SNDFILE * file, const SF_BROADCAST_INFO * binfo, int argc, char * HANDLE_BEXT_ARG ("--bext-orig-time", "Origination time", origination_time) ; HANDLE_BEXT_ARG ("--bext-coding-hist", "Coding history", coding_history) ; - HANDLE_STR_ARG ("--str-name", "Name", SF_STR_TITLE) ; + HANDLE_STR_ARG ("--str-title", "Name", SF_STR_TITLE) ; + HANDLE_STR_ARG ("--str-copyright", "Copyright", SF_STR_COPYRIGHT) ; HANDLE_STR_ARG ("--str-artist", "Artist", SF_STR_ARTIST) ; - HANDLE_STR_ARG ("--str-create-date", "Create date", SF_STR_DATE) ; + HANDLE_STR_ARG ("--str-comment", "Comment", SF_STR_COMMENT) ; + HANDLE_STR_ARG ("--str-date", "Create date", SF_STR_DATE) ; + HANDLE_STR_ARG ("--str-album", "Album", SF_STR_ALBUM) ; + HANDLE_STR_ARG ("--str-license", "License", SF_STR_LICENSE) ; if (! do_all) printf ("Error : Don't know what to do with command line arg '%s'.\n\n", argv [k]) ; diff --git a/examples/sndfile-metadata-set.c b/examples/sndfile-metadata-set.c index d72db89..e48e4dc 100644 --- a/examples/sndfile-metadata-set.c +++ b/examples/sndfile-metadata-set.c @@ -48,9 +48,14 @@ typedef struct -{ const char * name ; +{ const char * title ; + const char * copyright ; const char * artist ; - const char * create_date ; + const char * comment ; + const char * date ; + const char * album ; + const char * license ; + /* Stuff to go in the 'bext' chunk of WAV files. */ int has_bext_fields ; @@ -178,29 +183,21 @@ main (int argc, char *argv []) continue ; } ; - if (strcmp (argv [k], "--str-name") == 0) - { k ++ ; - if (k == argc) missing_param (argv [k - 1]) ; - - info.name = argv [k] ; - continue ; - } ; - - if (strcmp (argv [k], "--str-artist") == 0) - { k ++ ; - if (k == argc) missing_param (argv [k - 1]) ; - - info.artist = argv [k] ; - continue ; - } ; - - if (strcmp (argv [k], "--str-create-date") == 0) - { k ++ ; - if (k == argc) missing_param (argv [k - 1]) ; +#define HANDLE_STR_ARG(cmd,field) \ + if (strcmp (argv [k], cmd) == 0) \ + { k ++ ; \ + if (k == argc) missing_param (argv [k - 1]) ; \ + info.field = argv [k] ; \ + continue ; \ + } ; - info.create_date = argv [k] ; - continue ; - } ; + HANDLE_STR_ARG ("--str-title", title) ; + HANDLE_STR_ARG ("--str-copyright", copyright) ; + HANDLE_STR_ARG ("--str-artist", artist) ; + HANDLE_STR_ARG ("--str-copyright", copyright) ; + HANDLE_STR_ARG ("--str-date", date) ; + HANDLE_STR_ARG ("--str-album", album) ; + HANDLE_STR_ARG ("--str-license", license) ; /* Following options do not take an argument. */ if (strcmp (argv [k], "--bext-auto-time-date") == 0) @@ -227,12 +224,12 @@ main (int argc, char *argv []) continue ; } ; - if (strcmp (argv [k], "--str-auto-create-date") == 0) + if (strcmp (argv [k], "--str-auto-date") == 0) { char tmp [20] ; snprintf (tmp, sizeof (tmp), "%04d-%02d-%02d", timedata.tm_year + 1900, timedata.tm_mon + 1, timedata.tm_mday) ; - info.create_date = strdup (tmp) ; + info.date = strdup (tmp) ; continue ; } ; @@ -284,10 +281,10 @@ has_bext_fields_set (const INFO * info) { if (info->description || info->originator || info->originator_reference) return 1 ; - + if (info->origination_date || info->origination_time || info->umid || info->coding_history) return 1 ; - + return 0 ; } /* has_bext_fields_set */ @@ -451,14 +448,26 @@ merge_broadcast_info (SNDFILE * infile, SNDFILE * outfile, int format, const INF static void update_strings (SNDFILE * outfile, const INFO * info) { - if (info->name != NULL) - sf_set_string (outfile, SF_STR_TITLE, info->name) ; + if (info->title != NULL) + sf_set_string (outfile, SF_STR_TITLE, info->title) ; + + if (info->copyright != NULL) + sf_set_string (outfile, SF_STR_TITLE, info->copyright) ; if (info->artist != NULL) sf_set_string (outfile, SF_STR_ARTIST, info->artist) ; - if (info->create_date != NULL) - sf_set_string (outfile, SF_STR_DATE, info->create_date) ; + if (info->comment != NULL) + sf_set_string (outfile, SF_STR_TITLE, info->comment) ; + + if (info->date != NULL) + sf_set_string (outfile, SF_STR_DATE, info->date) ; + + if (info->album != NULL) + sf_set_string (outfile, SF_STR_TITLE, info->album) ; + + if (info->license != NULL) + sf_set_string (outfile, SF_STR_TITLE, info->license) ; } /* update_strings */ |