tags.h
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:3k
源码类别:

Windows CE

开发平台:

C/C++

  1. /* plugin_common - Routines common to several plugins
  2.  * Copyright (C) 2002,2003,2004,2005  Josh Coalson
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  */
  18. #ifndef FLAC__PLUGIN_COMMON__TAGS_H
  19. #define FLAC__PLUGIN_COMMON__TAGS_H
  20. #include "FLAC/format.h"
  21. FLAC__bool FLAC_plugin__tags_get(const char *filename, FLAC__StreamMetadata **tags);
  22. FLAC__bool FLAC_plugin__tags_set(const char *filename, const FLAC__StreamMetadata *tags);
  23. /*
  24.  * Deletes the tags object and sets '*tags' to NULL.
  25.  */
  26. void FLAC_plugin__tags_destroy(FLAC__StreamMetadata **tags);
  27. /*
  28.  * Gets the value (in UTF-8) of the first tag with the given name (NULL if no
  29.  * such tag exists).
  30.  */
  31. const char *FLAC_plugin__tags_get_tag_utf8(const FLAC__StreamMetadata *tags, const char *name);
  32. /*
  33.  * Gets the value (in UCS-2) of the first tag with the given name (NULL if no
  34.  * such tag exists).
  35.  *
  36.  * NOTE: the returned string is malloc()ed and must be free()d by the caller.
  37.  */
  38. FLAC__uint16 *FLAC_plugin__tags_get_tag_ucs2(const FLAC__StreamMetadata *tags, const char *name);
  39. /*
  40.  * Removes all tags with the given 'name'.  Returns the number of tags removed,
  41.  * or -1 on memory allocation error.
  42.  */
  43. int FLAC_plugin__tags_delete_tag(FLAC__StreamMetadata *tags, const char *name);
  44. /*
  45.  * Removes all tags.  Returns the number of tags removed, or -1 on memory
  46.  * allocation error.
  47.  */
  48. int FLAC_plugin__tags_delete_all(FLAC__StreamMetadata *tags);
  49. /*
  50.  * Adds a "name=value" tag to the tags.  'value' must be in UTF-8.  If
  51.  * 'separator' is non-NULL and 'tags' already contains a tag for 'name', the
  52.  * first such tag's value is appended with separator, then value.
  53.  */
  54. FLAC__bool FLAC_plugin__tags_add_tag_utf8(FLAC__StreamMetadata *tags, const char *name, const char *value, const char *separator);
  55. /*
  56.  * Adds a "name=value" tag to the tags.  'value' must be in UCS-2.  If 'tags'
  57.  * already contains a tag or tags for 'name', then they will be replaced
  58.  * according to 'replace_all': if 'replace_all' is false, only the first such
  59.  * tag will be replaced; if true, all matching tags will be replaced by the one
  60.  * new tag. 
  61.  */
  62. FLAC__bool FLAC_plugin__tags_set_tag_ucs2(FLAC__StreamMetadata *tags, const char *name, const FLAC__uint16 *value, FLAC__bool replace_all);
  63. #endif