<!--
libmusicbrainz5 - Client library to access MusicBrainz
Copyright (C) 2012 Andrew Hawkins
This file is part of libmusicbrainz5.
This library 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; either
version 2.1 of the License, or (at your option) any later version.
libmusicbrainz5 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 General Public License
along with this library. If not, see <http://www.gnu.org/licenses/>.
$Id$
-->
<cinterface>
<header/>
<boilerplate target="include">
/*
Things you should delete using the appropriate mb5_xxx_delete() function:
* The query object you create to do the actual work
* Any object or list returned from one of the mb5_query_xxx() functions
* The return from mb5_release_media_matching_discid() function
* The return from any mb5_xxx_clone() function
Everything else remains managed by the library, and should not be deleted
If in doubt, valgrind is a useful way to spot leaks or things being deleted
when they shouldn't be.
*/
#ifndef _MUSICBRAINZ5_MB_C_H
#define _MUSICBRAINZ5_MB_C_H
#include "musicbrainz5/defines.h"
#ifdef __cplusplus
extern "C"
{
#endif
</boilerplate>
<boilerplate target="source" file="c-int-source-funcs.inc"/>
<declare/>
<entity/>
<class name="alias">
<property name="locale" type="string"/>
<property name="text" type="string"/>
<property name="sortname" uppername="SortName" type="string"/>
<property name="type" type="string"/>
<property name="primary" type="string"/>
<property name="begindate" uppername="BeginDate" type="string"/>
<property name="enddate" uppername="EndDate" type="string"/>
</class>
<class name="annotation">
<property name="type" type="string"/>
<property name="entity" type="string"/>
<property name="name" type="string"/>
<property name="text" type="string"/>
</class>
<class name="artist">
<property name="id" uppername="ID" type="string"/>
<property name="type" type="string"/>
<property name="name" type="string"/>
<property name="sortname" uppername="SortName" type="string"/>
<property name="gender" type="string"/>
<property name="country" type="string"/>
<property name="disambiguation" type="string"/>
<property name="ipi" uppername="IPI" type="ipi"/>
<property name="lifespan" type="object"/>
<property name="aliaslist" uppername="AliasList" type="object"/>
<property name="recordinglist" uppername="RecordingList" type="object"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
<property name="releasegrouplist" uppername="ReleaseGroupList" type="object"/>
<property name="labellist" uppername="LabelList" type="object"/>
<property name="worklist" uppername="WorkList" type="object"/>
<property name="relationlist" uppername="RelationList" type="relationlist"/>
<property name="taglist" uppername="TagList" type="object"/>
<property name="usertaglist" uppername="UserTagList" type="object"/>
<property name="rating" type="object"/>
<property name="userrating" uppername="UserRating" type="object"/>
</class>
<class name="artistcredit" uppername="ArtistCredit">
<property name="namecreditlist" uppername="NameCreditList" type="object"/>
</class>
<class name="attribute">
<property name="text" type="string"/>
</class>
<class name="cdstub" uppername="CDStub">
<property name="id" uppername="ID" type="string"/>
<property name="title" type="string"/>
<property name="artist" type="string"/>
<property name="barcode" type="string"/>
<property name="comment" type="string"/>
<property name="nonmbtracklist" uppername="NonMBTrackList" type="object"/>
</class>
<class name="collection">
<property name="id" uppername="ID" type="string"/>
<property name="name" type="string"/>
<property name="editor" type="string"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
</class>
<class name="disc">
<property name="id" uppername="ID" type="string"/>
<property name="sectors" type="integer"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
</class>
<class name="freedbdisc" uppername="FreeDBDisc">
<property name="id" uppername="ID" type="string"/>
<property name="title" type="string"/>
<property name="artist" type="string"/>
<property name="category" type="string"/>
<property name="year" type="string"/>
<property name="nonmbtracklist" uppername="NonMBTrackList" type="object"/>
</class>
<class name="ipi" uppername="IPI">
<property name="ipi" uppername="IPI" type="string"/>
</class>
<class name="isrc" uppername="ISRC">
<property name="id" uppername="ID" type="string"/>
<property name="recordinglist" uppername="RecordingList" type="object"/>
</class>
<class name="iswc" uppername="ISWC">
<property name="iswc" uppername="ISWC" type="string"/>
</class>
<class name="label">
<property name="id" uppername="ID" type="string"/>
<property name="type" type="string"/>
<property name="name" type="string"/>
<property name="sortname" uppername="SortName" type="string"/>
<property name="labelcode" uppername="LabelCode" type="integer"/>
<property name="ipi" uppername="IPI" type="ipi"/>
<property name="disambiguation" type="string"/>
<property name="country" type="string"/>
<property name="lifespan" type="object"/>
<property name="aliaslist" uppername="AliasList" type="object"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
<property name="relationlist" uppername="RelationList" type="relationlist"/>
<property name="taglist" uppername="TagList" type="object"/>
<property name="usertaglist" uppername="UserTagList" type="object"/>
<property name="rating" type="object"/>
<property name="userrating" uppername="UserRating" type="object"/>
</class>
<class name="labelinfo" uppername="LabelInfo">
<property name="catalognumber" uppername="CatalogNumber" type="string"/>
<property name="label" type="object"/>
</class>
<class name="lifespan">
<property name="begin" type="string"/>
<property name="end" type="string"/>
<property name="ended" type="string"/>
</class>
<class name="medium">
<property name="title" type="string"/>
<property name="position" type="integer"/>
<property name="format" type="string"/>
<property name="disclist" uppername="DiscList" type="object"/>
<property name="tracklist" uppername="TrackList" type="object"/>
</class>
<boilerplate target="include" file="c-int-medium-defines.inc"/>
<boilerplate target="source" file="c-int-medium-source.inc"/>
<class name="message">
<property name="text" type="string"/>
</class>
<class name="metadata">
<property name="xmlns" uppername="XMLNS" type="string"/>
<property name="xmlnsext" uppername="XMLNSExt" type="string"/>
<property name="generator" type="string"/>
<property name="created" type="string"/>
<property name="artist" type="object"/>
<property name="release" type="object"/>
<property name="releasegroup" uppername="ReleaseGroup" type="object"/>
<property name="recording" type="object"/>
<property name="label" type="object"/>
<property name="work" type="object"/>
<property name="puid" uppername="PUID" type="object"/>
<property name="isrc" uppername="ISRC" type="object"/>
<property name="disc" type="object"/>
<property name="labelinfolist" uppername="LabelInfoList" type="object"/>
<property name="rating" type="object"/>
<property name="userrating" uppername="UserRating" type="object"/>
<property name="collection" type="object"/>
<property name="artistlist" uppername="ArtistList" type="object"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
<property name="releasegrouplist" uppername="ReleaseGroupList" type="object"/>
<property name="recordinglist" uppername="RecordingList" type="object"/>
<property name="labellist" uppername="LabelList" type="object"/>
<property name="worklist" uppername="WorkList" type="object"/>
<property name="isrclist" uppername="ISRCList" type="object"/>
<property name="annotationlist" uppername="AnnotationList" type="object"/>
<property name="cdstublist" uppername="CDStubList" type="object"/>
<property name="freedbdisclist" uppername="FreeDBDiscList" type="object"/>
<property name="taglist" uppername="TagList" type="object"/>
<property name="usertaglist" uppername="UserTagList" type="object"/>
<property name="collectionlist" uppername="CollectionList" type="object"/>
<property name="cdstub" uppername="CDStub" type="object"/>
<property name="message" type="object"/>
</class>
<class name="namecredit" uppername="NameCredit">
<property name="joinphrase" uppername="JoinPhrase" type="string"/>
<property name="name" type="string"/>
<property name="artist" type="object"/>
</class>
<class name="nonmbtrack" uppername="NonMBTrack">
<property name="title" type="string"/>
<property name="artist" type="string"/>
<property name="length" type="integer"/>
</class>
<class name="puid" uppername="PUID">
<property name="id" uppername="ID" type="string"/>
<property name="recordinglist" uppername="RecordingList" type="object"/>
</class>
<class name="query">
<property name="lasthttpcode" uppername="LastHTTPCode" type="integer"/>
<property name="lasterrormessage" uppername="LastErrorMessage" type="string"/>
<property name="version" type="string"/>
</class>
<boilerplate target="include" file="c-int-query-defines.inc"/>
<boilerplate target="source" file="c-int-query-source.inc"/>
<class name="rating">
<property name="votescount" uppername="VotesCount" type="integer"/>
<property name="rating" type="double"/>
</class>
<class name="recording">
<property name="id" uppername="ID" type="string"/>
<property name="title" type="string"/>
<property name="length" type="integer"/>
<property name="disambiguation" type="string"/>
<property name="artistcredit" uppername="ArtistCredit" type="object"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
<property name="puidlist" uppername="PUIDList" type="object"/>
<property name="isrclist" uppername="ISRCList" type="object"/>
<property name="relationlist" uppername="RelationList" type="relationlist"/>
<property name="taglist" uppername="TagList" type="object"/>
<property name="usertaglist" uppername="UserTagList" type="object"/>
<property name="rating" type="object"/>
<property name="userrating" uppername="UserRating" type="object"/>
</class>
<class name="relation">
<property name="type" type="string"/>
<property name="target" type="string"/>
<property name="direction" type="string"/>
<property name="attributelist" uppername="AttributeList" type="object"/>
<property name="begin" type="string"/>
<property name="end" type="string"/>
<property name="ended" type="string"/>
<property name="artist" type="object"/>
<property name="release" type="object"/>
<property name="releasegroup" uppername="ReleaseGroup" type="object"/>
<property name="recording" type="object"/>
<property name="label" type="object"/>
<property name="work" type="object"/>
</class>
<class name="release">
<property name="id" uppername="ID" type="string"/>
<property name="title" type="string"/>
<property name="status" type="string"/>
<property name="quality" type="string"/>
<property name="disambiguation" type="string"/>
<property name="packaging" type="string"/>
<property name="textrepresentation" uppername="TextRepresentation" type="object"/>
<property name="artistcredit" uppername="ArtistCredit" type="object"/>
<property name="releasegroup" uppername="ReleaseGroup" type="object"/>
<property name="date" type="string"/>
<property name="country" type="string"/>
<property name="barcode" type="string"/>
<property name="asin" uppername="ASIN" type="string"/>
<property name="labelinfolist" uppername="LabelInfoList" type="object"/>
<property name="mediumlist" uppername="MediumList" type="object"/>
<property name="relationlist" uppername="RelationList" type="relationlist"/>
<property name="collectionlist" uppername="CollectionList" type="object"/>
</class>
<boilerplate target="include" file="c-int-release-defines.inc"/>
<boilerplate target="source" file="c-int-release-source.inc"/>
<class name="releasegroup" uppername="ReleaseGroup">
<property name="id" uppername="ID" type="string"/>
<property name="primarytype" uppername="PrimaryType" type="string"/>
<property name="title" type="string"/>
<property name="disambiguation" type="string"/>
<property name="firstreleasedate" uppername="FirstReleaseDate" type="string"/>
<property name="artistcredit" uppername="ArtistCredit" type="object"/>
<property name="releaselist" uppername="ReleaseList" type="object"/>
<property name="relationlist" uppername="RelationList" type="relationlist"/>
<property name="taglist" uppername="TagList" type="object"/>
<property name="usertaglist" uppername="UserTagList" type="object"/>
<property name="rating" type="object"/>
<property name="userrating" uppername="UserRating" type="object"/>
<property name="secondarytypelist" uppername="SecondaryTypeList" type="object"/>
</class>
<class name="secondarytype" uppername="SecondaryType">
<property name="secondarytype" uppername="SecondaryType" type="string"/>
</class>
<class name="tag">
<property name="count" type="integer"/>
<property name="name" type="string"/>
</class>
<class name="textrepresentation" uppername="TextRepresentation">
<property name="language" type="string"/>
<property name="script" type="string"/>
</class>
<class name="track">
<property name="position" type="integer"/>
<property name="title" type="string"/>
<property name="recording" type="object"/>
<property name="length" type="integer"/>
<property name="artistcredit" uppername="ArtistCredit" type="object"/>
<property name="number" type="string"/>
</class>
<class name="userrating" uppername="UserRating">
<property name="userrating" uppername="UserRating" type="integer"/>
</class>
<class name="usertag" uppername="UserTag">
<property name="name" type="string"/>
</class>
<class name="work">
<property name="id" uppername="ID" type="string"/>
<property name="type" type="string"/>
<property name="title" type="string"/>
<property name="artistcredit" uppername="ArtistCredit" type="object"/>
<property name="iswc" uppername="ISWC" type="iswc"/>
<property name="disambiguation" type="string"/>
<property name="aliaslist" uppername="AliasList" type="object"/>
<property name="relationlist" uppername="RelationList" type="relationlist"/>
<property name="taglist" uppername="TagList" type="object"/>
<property name="usertaglist" uppername="UserTagList" type="object"/>
<property name="rating" type="object"/>
<property name="userrating" uppername="UserRating" type="object"/>
<property name="language" type="string"/>
</class>
<list name="alias"/>
<list name="annotation"/>
<list name="artist"/>
<list name="attribute"/>
<list name="cdstub" uppername="CDStub"/>
<list name="collection"/>
<list name="disc"/>
<list name="freedbdisc" uppername="FreeDBDisc"/>
<list name="ipi" uppername="IPI"/>
<list name="isrc" uppername="ISRC"/>
<list name="iswc" uppername="ISWC"/>
<list name="label"/>
<list name="labelinfo" uppername="LabelInfo"/>
<list name="medium">
<property name="trackcount" uppername="TrackCount" type="integer"/>
</list>
<list name="namecredit" uppername="NameCredit"/>
<list name="nonmbtrack" uppername="NonMBTrack"/>
<list name="puid" uppername="PUID"/>
<list name="recording"/>
<list name="relation">
<property name="targettype" uppername="TargetType" type="string"/>
</list>
<list name="relationlist" uppername="RelationList"/>
<list name="release"/>
<list name="releasegroup" uppername="ReleaseGroup"/>
<list name="secondarytype" uppername="SecondaryType"/>
<list name="tag"/>
<list name="track"/>
<list name="usertag" uppername="UserTag"/>
<list name="work"/>
<boilerplate target="include">
#ifdef __cplusplus
}
#endif
#endif
</boilerplate>
</cinterface>