5 // Aaron Bockover <abockover@novell.com>
7 // Copyright (C) 2008 Novell, Inc.
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33 #include <glib/gstdio.h>
35 #include "banshee-tagger.h"
37 // ---------------------------------------------------------------------------
39 // ---------------------------------------------------------------------------
42 bt_tag_list_foreach (const GstTagList
*list
, const gchar
*tag
, gpointer userdata
)
46 tag_count
= gst_tag_list_get_tag_size (list
, tag
);
47 g_printf ("Found %d '%s' tag%s:", tag_count
, tag
, tag_count
== 1 ? "" : "s");
48 for (i
= 0; i
< tag_count
; i
++) {
51 gchar
*padding
= tag_count
== 1 ? " " : " ";
53 value
= gst_tag_list_get_value_index (list
, tag
, i
);
55 g_printf ("%s(null)\n", padding
);
59 value_str
= g_strdup_value_contents (value
);
60 g_printf ("%s%s\n", padding
, value_str
);
65 // ---------------------------------------------------------------------------
67 // ---------------------------------------------------------------------------
72 return gst_tag_list_new ();
76 bt_tag_list_free (GstTagList
*list
)
78 gst_tag_list_free (list
);
82 bt_tag_list_add_value (GstTagList
*list
, const gchar
*tag_name
, const GValue
*value
)
84 gst_tag_list_add_values (list
, GST_TAG_MERGE_REPLACE
, tag_name
, value
, NULL
);
88 bt_tag_list_add_date (GstTagList
*list
, gint year
, gint month
, gint day
)
92 if (!g_date_valid_dmy (day
, month
, year
)) {
97 g_date_clear (date
, 1);
98 g_date_set_dmy (date
, day
, month
, year
);
100 gst_tag_list_add (list
, GST_TAG_MERGE_REPLACE
, GST_TAG_DATE
, date
, NULL
);
104 bt_tag_list_dump (const GstTagList
*list
)
106 gst_tag_list_foreach (list
, bt_tag_list_foreach
, NULL
);