zdoom-macos-deps/deps/instpatch/include/libinstpatch/IpatchDLS2Info.h
2022-09-06 13:49:23 +03:00

84 lines
3.4 KiB
C

/*
* libInstPatch
* Copyright (C) 1999-2014 Element Green <element@elementsofsound.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; version 2.1
* of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA or on the web at http://www.gnu.org.
*/
#ifndef __IPATCH_DLS2_INFO_H__
#define __IPATCH_DLS2_INFO_H__
#include <glib.h>
#include <glib-object.h>
#include <libinstpatch/IpatchRiff.h>
#include <libinstpatch/IpatchDLSFile.h>
typedef GSList IpatchDLS2Info;
typedef struct _IpatchDLS2InfoBag IpatchDLS2InfoBag;
/* a container for a INFO ID and value (generally not accessed directly) */
struct _IpatchDLS2InfoBag
{
guint32 fourcc; /* FOURCC int ID */
char *value; /* info string value */
};
/* known DLS2 INFO FOURCC IDs */
typedef enum
{
IPATCH_DLS2_ARCHIVE_LOCATION = IPATCH_DLS_FOURCC_IARL,
IPATCH_DLS2_ARTIST = IPATCH_DLS_FOURCC_IART,
IPATCH_DLS2_COMMISSIONED = IPATCH_DLS_FOURCC_ICMS,
IPATCH_DLS2_COMMENT = IPATCH_DLS_FOURCC_ICMT,
IPATCH_DLS2_COPYRIGHT = IPATCH_DLS_FOURCC_ICOP,
IPATCH_DLS2_DATE = IPATCH_DLS_FOURCC_ICRD,
IPATCH_DLS2_ENGINEER = IPATCH_DLS_FOURCC_IENG,
IPATCH_DLS2_GENRE = IPATCH_DLS_FOURCC_IGNR,
IPATCH_DLS2_KEYWORDS = IPATCH_DLS_FOURCC_IKEY,
IPATCH_DLS2_MEDIUM = IPATCH_DLS_FOURCC_IMED,
IPATCH_DLS2_NAME = IPATCH_DLS_FOURCC_INAM,
IPATCH_DLS2_PRODUCT = IPATCH_DLS_FOURCC_IPRD,
IPATCH_DLS2_SUBJECT = IPATCH_DLS_FOURCC_ISBJ,
IPATCH_DLS2_SOFTWARE = IPATCH_DLS_FOURCC_ISFT,
IPATCH_DLS2_SOURCE = IPATCH_DLS_FOURCC_ISRC,
IPATCH_DLS2_SOURCE_FORM = IPATCH_DLS_FOURCC_ISRF,
IPATCH_DLS2_TECHNICIAN = IPATCH_DLS_FOURCC_ITCH
} IpatchDLS2InfoType;
char *ipatch_dls2_info_get(IpatchDLS2Info *info, guint32 fourcc);
G_CONST_RETURN char *ipatch_dls2_info_peek(IpatchDLS2Info *info,
guint32 fourcc);
void ipatch_dls2_info_set(IpatchDLS2Info **info, guint32 fourcc,
const char *value);
void ipatch_dls2_info_free(IpatchDLS2Info *info);
IpatchDLS2Info *ipatch_dls2_info_duplicate(IpatchDLS2Info *info);
gboolean ipatch_dls2_info_is_defined(guint32 fourcc);
void ipatch_dls2_info_install_class_properties(GObjectClass *obj_class);
gboolean ipatch_dls2_info_set_property(IpatchDLS2Info **info_list,
guint property_id,
const GValue *value);
gboolean ipatch_dls2_info_get_property(IpatchDLS2Info *info_list,
guint property_id,
GValue *value);
void ipatch_dls2_info_notify(IpatchItem *item, guint32 fourcc,
const GValue *new_value, const GValue *old_value);
IpatchDLS2InfoBag *ipatch_dls2_info_bag_new(void);
void ipatch_dls2_info_bag_free(IpatchDLS2InfoBag *bag);
#endif