mb_c.h

Go to the documentation of this file.
00001 /*
00002  * MusicBrainz -- The Internet music metadatabase
00003  *
00004  * Copyright (C) 2006 Lukas Lalinsky
00005  *      
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  * 
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  * 
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019  *
00020  * $Id: mb_c.h 8919 2007-03-19 20:27:18Z luks $
00021  */
00022  
00023 #ifndef __MUSICBRAINZ3_MB_C_H__
00024 #define __MUSICBRAINZ3_MB_C_H__
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 #include <musicbrainz3/defines.h>
00031 
00032 /* {{{ Typedefs */
00033 
00034 typedef void *MbArtist;
00035 typedef void *MbArtistAlias;
00036 typedef void *MbArtistFilter;
00037 typedef void *MbArtistIncludes;
00038 typedef void *MbDisc;
00039 typedef void *MbEntity;
00040 typedef void *MbQuery;
00041 typedef void *MbRelation;
00042 typedef void *MbRelease;
00043 typedef void *MbReleaseEvent;
00044 typedef void *MbReleaseFilter;
00045 typedef void *MbReleaseIncludes;
00046 typedef void *MbResultList;
00047 typedef void *MbTrack;
00048 typedef void *MbTrackFilter;
00049 typedef void *MbTrackIncludes;
00050 typedef void *MbUser;
00051 typedef void *MbUserFilter;
00052 typedef void *MbWebService;
00053 
00054 /* }}} */
00055 
00056 /* {{{ MusicBrainz::WebService */
00057 
00063 MB_API MbWebService
00064 mb_webservice_new();
00065 
00071 MB_API void
00072 mb_webservice_free(MbWebService webservice);
00073 
00077 MB_API void
00078 mb_webservice_set_host(MbWebService webservice, const char *str);
00079 
00083 MB_API void
00084 mb_webservice_set_port(MbWebService webservice, int port);
00085 
00089 MB_API void
00090 mb_webservice_set_path_prefix(MbWebService webservice, const char *str);
00091 
00095 MB_API void
00096 mb_webservice_set_username(MbWebService webservice, const char *str);
00097 
00101 MB_API void
00102 mb_webservice_set_password(MbWebService webservice, const char *str);
00103 
00107 MB_API void
00108 mb_webservice_set_realm(MbWebService webservice, const char *str);
00109 
00113 MB_API void
00114 mb_webservice_set_proxy_host(MbWebService webservice, const char *str);
00115 
00119 MB_API void
00120 mb_webservice_set_proxy_port(MbWebService webservice, int port);
00121 
00125 MB_API void
00126 mb_webservice_set_proxy_username(MbWebService webservice, const char *str);
00127 
00131 MB_API void
00132 mb_webservice_set_proxy_password(MbWebService webservice, const char *str);
00133 
00134 /* }}} */
00135 
00136 /* {{{ MusicBrainz::Query */
00137 
00143 MB_API MbQuery
00144 mb_query_new(MbWebService ws, const char *client_id);
00145 
00151 MB_API void
00152 mb_query_free(MbQuery query);
00153 
00159 MB_API MbArtist
00160 mb_query_get_artist_by_id(MbQuery query, const char *id, MbArtistIncludes inc);
00161 
00167 MB_API MbRelease
00168 mb_query_get_release_by_id(MbQuery query, const char *id, MbReleaseIncludes inc);
00169 
00175 MB_API MbTrack
00176 mb_query_get_track_by_id(MbQuery query, const char *id, MbTrackIncludes inc);
00177 
00183 MB_API MbUser
00184 mb_query_get_user_by_name(MbQuery query, const char *name);
00185 
00186 /* }}} */
00187 
00188 MB_API void
00189 mb_result_list_free(MbResultList list);
00190 
00191 MB_API int
00192 mb_result_list_get_size(MbResultList list);
00193 
00194 MB_API int
00195 mb_result_list_get_score(MbResultList list, int index);
00196 
00197 MB_API MbArtist
00198 mb_result_list_get_artist(MbResultList list, int index);
00199 
00200 MB_API MbRelease
00201 mb_result_list_get_release(MbResultList list, int index);
00202 
00203 MB_API MbTrack
00204 mb_result_list_get_track(MbResultList list, int index);
00205 
00206 MB_API MbResultList
00207 mb_query_get_artists(MbQuery query, MbArtistFilter flt);
00208 
00209 MB_API MbResultList
00210 mb_query_get_releases(MbQuery query, MbReleaseFilter flt);
00211 
00212 MB_API MbResultList
00213 mb_query_get_track(MbQuery query, MbTrackFilter flt);
00214 
00215 /* {{{ MusicBrainz::Artist */
00216 
00220 MB_API void
00221 mb_artist_free(MbArtist artist);
00222 
00228 MB_API void
00229 mb_artist_get_id(MbArtist artist, char *str, int len);
00230 
00236 MB_API void
00237 mb_artist_get_type(MbArtist artist, char *str, int len);
00238 
00244 MB_API void
00245 mb_artist_get_name(MbArtist artist, char *str, int len);
00246 
00252 MB_API void
00253 mb_artist_get_sortname(MbArtist artist, char *str, int len);
00254 
00260 MB_API void
00261 mb_artist_get_disambiguation(MbArtist artist, char *str, int len);
00262 
00268 MB_API void
00269 mb_artist_get_unique_name(MbArtist artist, char *str, int len);
00270 
00276 MB_API void
00277 mb_artist_get_begin_date(MbArtist artist, char *str, int len);
00278 
00284 MB_API void
00285 mb_artist_get_end_date(MbArtist artist, char *str, int len);
00286 
00292 MB_API int
00293 mb_artist_get_num_aliases(MbArtist artist);
00294 
00300 MB_API MbArtistAlias
00301 mb_artist_get_alias(MbArtist artist, int index);
00302 
00308 MB_API int
00309 mb_artist_get_num_releases(MbArtist artist);
00310 
00316 MB_API MbRelease
00317 mb_artist_get_release(MbArtist artist, int index);
00318 
00324 MB_API int
00325 mb_artist_get_releases_offset(MbArtist artist);
00326 
00332 MB_API int
00333 mb_artist_get_releases_count(MbArtist artist);
00334 
00340 MB_API int
00341 mb_artist_get_num_relations(MbArtist artist);
00342 
00348 MB_API MbRelation
00349 mb_artist_get_relation(MbArtist artist, int index);
00350 
00351 /* }}} */
00352 
00353 /* {{{ MusicBrainz::Release */
00354 
00358 MB_API void
00359 mb_release_free(MbRelease release);
00360 
00366 MB_API void
00367 mb_release_get_id(MbRelease release, char *str, int len);
00368 
00374 MB_API void
00375 mb_release_get_title(MbRelease release, char *str, int len);
00376 
00382 MB_API void
00383 mb_release_get_text_language(MbRelease release, char *str, int len);
00384 
00390 MB_API void
00391 mb_release_get_text_script(MbRelease release, char *str, int len);
00392 
00398 MB_API void
00399 mb_release_get_asin(MbRelease release, char *str, int len);
00400 
00406 MB_API int
00407 mb_release_get_tracks_offset(MbRelease release);
00408 
00414 MB_API int
00415 mb_release_get_tracks_count(MbRelease release);
00416 
00422 MB_API int
00423 mb_release_get_num_relations(MbRelease release);
00424 
00430 MB_API MbRelation
00431 mb_release_get_relation(MbRelease release, int index);
00432 
00438 MB_API int
00439 mb_release_get_num_tracks(MbRelease release);
00440 
00446 MB_API MbTrack
00447 mb_release_get_track(MbRelease release, int index);
00448 
00454 MB_API int
00455 mb_release_get_num_discs(MbRelease release);
00456 
00462 MB_API MbDisc
00463 mb_release_get_disc(MbRelease release, int index);
00464 
00470 MB_API int
00471 mb_release_get_num_release_events(MbRelease release);
00472 
00478 MB_API MbReleaseEvent
00479 mb_release_get_release_event(MbRelease release, int index);
00480 
00486 MB_API int
00487 mb_release_get_num_types(MbRelease release);
00488 
00494 MB_API void
00495 mb_release_get_type(MbRelease release, int index, char *str, int len);
00496 
00497 /* }}} */
00498 
00499 /* {{{ MusicBrainz::Track */
00500 
00504 MB_API void
00505 mb_track_free(MbTrack track);
00506 
00512 MB_API void
00513 mb_track_get_id(MbTrack track, char *str, int len);
00514 
00520 MB_API void
00521 mb_track_get_title(MbTrack track, char *str, int len);
00522 
00528 MB_API int
00529 mb_track_get_duration(MbTrack track);
00530 
00536 MB_API int
00537 mb_track_get_num_relations(MbTrack track);
00538 
00544 MB_API MbRelation
00545 mb_track_get_relation(MbTrack track, int index);
00546 
00547 /* }}} */
00548 
00549 /* {{{ MusicBrainz::ArtistAlias */
00550 
00556 MB_API void
00557 mb_artist_alias_get_value(MbArtistAlias alias, char *str, int len);
00558 
00564 MB_API void
00565 mb_artist_alias_get_type(MbArtistAlias alias, char *str, int len);
00566 
00572 MB_API void
00573 mb_artist_alias_get_script(MbArtistAlias alias, char *str, int len);
00574 
00575 /* }}} */
00576 
00577 /* {{{ MusicBrainz::User */
00578 
00582 MB_API void
00583 mb_user_free(MbUser user);
00584 
00590 MB_API void
00591 mb_user_get_name(MbUser user, char *str, int len);
00592 
00598 MB_API int
00599 mb_user_get_show_nag(MbUser user);
00600 
00606 MB_API int
00607 mb_user_get_num_types(MbUser user);
00608 
00614 MB_API void
00615 mb_user_get_type(MbUser user, int index, char *str, int len);
00616 
00617 /* }}} */
00618 
00619 /* {{{ MusicBrainz::ArtistIncludes */
00620 
00621 MB_API MbArtistIncludes
00622 mb_artist_includes_new();
00623 
00624 MB_API void
00625 mb_artist_includes_free(MbArtistIncludes inc);
00626 
00627 MB_API MbArtistIncludes
00628 mb_artist_includes_aliases(MbArtistIncludes inc);
00629 
00630 MB_API MbArtistIncludes
00631 mb_artist_includes_releases(MbArtistIncludes inc, const char *type);
00632 
00633 MB_API MbArtistIncludes
00634 mb_artist_includes_va_releases(MbArtistIncludes inc, const char *type);
00635 
00636 MB_API MbArtistIncludes
00637 mb_artist_includes_artist_relations(MbArtistIncludes inc);
00638 
00639 MB_API MbArtistIncludes
00640 mb_artist_includes_release_relations(MbArtistIncludes inc);
00641 
00642 MB_API MbArtistIncludes
00643 mb_artist_includes_track_relations(MbArtistIncludes inc);
00644 
00645 MB_API MbArtistIncludes
00646 mb_artist_includes_url_relations(MbArtistIncludes inc);
00647 
00648 /* }}} */
00649 
00650 /* {{{ MusicBrainz::ReleaseIncludes */
00651 
00652 MB_API MbReleaseIncludes
00653 mb_release_includes_new();
00654 
00655 MB_API void
00656 mb_release_includes_free(MbReleaseIncludes inc);
00657 
00658 MB_API MbReleaseIncludes
00659 mb_release_includes_artist(MbReleaseIncludes inc);
00660 
00661 MB_API MbReleaseIncludes
00662 mb_release_includes_counts(MbReleaseIncludes inc);
00663 
00664 MB_API MbReleaseIncludes
00665 mb_release_includes_release_events(MbReleaseIncludes inc);
00666 
00667 MB_API MbReleaseIncludes
00668 mb_release_includes_discs(MbReleaseIncludes inc);
00669 
00670 MB_API MbReleaseIncludes
00671 mb_release_includes_tracks(MbReleaseIncludes inc);
00672 
00673 MB_API MbReleaseIncludes
00674 mb_release_includes_artist_relations(MbReleaseIncludes inc);
00675 
00676 MB_API MbReleaseIncludes
00677 mb_release_includes_release_relations(MbReleaseIncludes inc);
00678 
00679 MB_API MbReleaseIncludes
00680 mb_release_includes_track_relations(MbReleaseIncludes inc);
00681 
00682 MB_API MbReleaseIncludes
00683 mb_release_includes_url_relations(MbReleaseIncludes inc);
00684 
00685 /* }}} */
00686 
00687 /* {{{ MusicBrainz::TrackIncludes */
00688 
00689 MB_API MbTrackIncludes
00690 mb_track_includes_new();
00691 
00692 MB_API void
00693 mb_track_includes_free(MbArtistIncludes inc);
00694 
00695 MB_API MbTrackIncludes
00696 mb_track_includes_artist(MbArtistIncludes inc);
00697 
00698 MB_API MbTrackIncludes
00699 mb_track_includes_releases(MbArtistIncludes inc);
00700 
00701 MB_API MbTrackIncludes
00702 mb_track_includes_puids(MbArtistIncludes inc);
00703 
00704 MB_API MbTrackIncludes
00705 mb_track_includes_artist_relations(MbArtistIncludes inc);
00706 
00707 MB_API MbTrackIncludes
00708 mb_track_includes_release_relations(MbTrackIncludes inc);
00709 
00710 MB_API MbTrackIncludes
00711 mb_track_includes_track_relations(MbTrackIncludes inc);
00712 
00713 MB_API MbTrackIncludes
00714 mb_track_includes_url_relations(MbTrackIncludes inc);
00715 
00716 /* }}} */
00717 
00718 /* {{{ MusicBrainz::MbArtistFilter */
00719 
00720 MB_API MbArtistFilter
00721 mb_artist_filter_new();
00722 
00723 MB_API void
00724 mb_artist_filter_free(MbArtistFilter flt);
00725 
00726 MB_API MbArtistFilter
00727 mb_artist_filter_name(MbArtistFilter flt, const char *value);
00728 
00729 MB_API MbArtistFilter
00730 mb_artist_filter_limit(MbArtistFilter flt, int value);
00731 
00732 /* }}} */
00733 
00734 /* {{{ MusicBrainz::MbReleaseFilter */
00735 
00736 MB_API MbReleaseFilter
00737 mb_release_filter_new();
00738 
00739 MB_API void
00740 mb_release_filter_free(MbReleaseFilter flt);
00741 
00742 MB_API MbReleaseFilter
00743 mb_release_filter_title(MbReleaseFilter flt, const char *value);
00744 
00745 MB_API MbReleaseFilter
00746 mb_release_filter_disc_id(MbReleaseFilter flt, const char *value);
00747 
00748 MB_API MbReleaseFilter
00749 mb_release_filter_release_type(MbReleaseFilter flt, const char *value);
00750 
00751 MB_API MbReleaseFilter
00752 mb_release_filter_artist_name(MbReleaseFilter flt, const char *value);
00753 
00754 MB_API MbReleaseFilter
00755 mb_release_filter_artist_id(MbReleaseFilter flt, const char *value);
00756 
00757 MB_API MbReleaseFilter
00758 mb_release_filter_limit(MbReleaseFilter flt, int value);
00759 
00760 /* }}} */
00761 
00762 /* {{{ MusicBrainz::MbTrackFilter */
00763 
00764 MB_API MbTrackFilter
00765 mb_track_filter_new();
00766 
00767 MB_API void
00768 mb_track_filter_free(MbTrackFilter flt);
00769 
00770 MB_API MbTrackFilter
00771 mb_track_filter_title(MbTrackFilter flt, const char *value);
00772 
00773 MB_API MbTrackFilter
00774 mb_track_filter_artist_name(MbTrackFilter flt, const char *value);
00775 
00776 MB_API MbTrackFilter
00777 mb_track_filter_artist_id(MbTrackFilter flt, const char *value);
00778 
00779 MB_API MbTrackFilter
00780 mb_track_filter_release_title(MbTrackFilter flt, const char *value);
00781 
00782 MB_API MbTrackFilter
00783 mb_track_filter_release_id(MbTrackFilter flt, const char *value);
00784 
00785 MB_API MbTrackFilter
00786 mb_track_filter_duration(MbTrackFilter flt, int value);
00787 
00788 MB_API MbTrackFilter
00789 mb_track_filter_puid(MbTrackFilter flt, const char *value);
00790 
00791 MB_API MbTrackFilter
00792 mb_track_filter_limit(MbTrackFilter flt, int value);
00793 
00794 /* }}} */
00795 
00796 /* {{{ MusicBrainz::MbUserFilter */
00797 
00798 MB_API MbUserFilter
00799 mb_user_filter_new();
00800 
00801 MB_API void
00802 mb_user_filter_free(MbUserFilter flt);
00803 
00804 MB_API MbUserFilter
00805 mb_user_filter_name(MbUserFilter flt, const char *value);
00806 
00807 /* }}} */
00808 
00809 /* {{{ MusicBrainz::ArtistAlias */
00810 
00816 MB_API void
00817 mb_release_event_get_country(MbReleaseEvent releaseEvent, char *str, int len);
00818 
00824 MB_API void
00825 mb_release_event_get_date(MbReleaseEvent releaseEvent, char *str, int len);
00826 
00827 /* }}} */
00828 
00829 /* {{{ MusicBrainz::Relation */
00830 
00836 MB_API void
00837 mb_relation_get_type(MbRelation relation, char *str, int len);
00838 
00844 MB_API void
00845 mb_relation_get_target_id(MbRelation relation, char *str, int len);
00846 
00852 MB_API void
00853 mb_relation_get_target_type(MbRelation relation, char *str, int len);
00854 
00860 MB_API void
00861 mb_relation_get_begin_date(MbRelation relation, char *str, int len);
00862 
00868 MB_API void
00869 mb_relation_get_end_date(MbRelation relation, char *str, int len);
00870 
00876 MB_API int
00877 mb_relation_get_direction(MbRelation relation);
00878 
00884 MB_API MbEntity
00885 mb_relation_get_target(MbRelation relation);
00886 
00892 MB_API int
00893 mb_relation_get_num_attributes(MbRelation relation);
00894 
00900 MB_API void
00901 mb_relation_get_attribute(MbRelation relation, int index, char *str, int len);
00902 
00903 /* }}} */
00904 
00905 /* {{{ MusicBrainz::Disc */
00906 
00912 MB_API void
00913 mb_disc_get_id(MbDisc disc, char *str, int len);
00914 
00920 MB_API int
00921 mb_disc_get_sectors(MbDisc disc);
00922 
00928 MB_API int
00929 mb_disc_get_first_track_num(MbDisc disc);
00930 
00936 MB_API int
00937 mb_disc_get_last_track_num(MbDisc disc);
00938 
00944 MB_API MbDisc
00945 mb_read_disc(const char *device_name);
00946 
00952 MB_API void
00953 mb_get_submission_url(MbDisc disc, const char *host, int port, char *str, int len);
00954 
00955 /* }}} */
00956 
00957 #ifdef __cplusplus
00958 }
00959 #endif
00960 
00961 #endif

Generated on Sat Nov 10 21:27:13 2007 for libmusicbrainz3 by  doxygen 1.5.3-20071008