00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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
00033
00034 typedef void *MbArtist;
00035 typedef void *MbArtistAlias;
00036 typedef void *MbArtistFilter;
00037 typedef void *MbArtistIncludes;
00038 typedef void *MbLabel;
00039 typedef void *MbLabelAlias;
00040 typedef void *MbLabelFilter;
00041 typedef void *MbLabelIncludes;
00042 typedef void *MbDisc;
00043 typedef void *MbEntity;
00044 typedef void *MbQuery;
00045 typedef void *MbRelation;
00046 typedef void *MbRelease;
00047 typedef void *MbReleaseEvent;
00048 typedef void *MbReleaseGroup;
00049 typedef void *MbReleaseGroupFilter;
00050 typedef void *MbReleaseGroupIncludes;
00051 typedef void *MbReleaseFilter;
00052 typedef void *MbReleaseIncludes;
00053 typedef void *MbResultList;
00054 typedef void *MbTrack;
00055 typedef void *MbTrackFilter;
00056 typedef void *MbTrackIncludes;
00057 typedef void *MbUser;
00058 typedef void *MbUserFilter;
00059 typedef void *MbWebService;
00060
00061
00062
00063
00064
00070 MB_API MbWebService
00071 mb_webservice_new();
00072
00078 MB_API void
00079 mb_webservice_free(MbWebService webservice);
00080
00084 MB_API void
00085 mb_webservice_set_host(MbWebService webservice, const char *str);
00086
00090 MB_API void
00091 mb_webservice_set_port(MbWebService webservice, int port);
00092
00096 MB_API void
00097 mb_webservice_set_path_prefix(MbWebService webservice, const char *str);
00098
00102 MB_API void
00103 mb_webservice_set_username(MbWebService webservice, const char *str);
00104
00108 MB_API void
00109 mb_webservice_set_password(MbWebService webservice, const char *str);
00110
00114 MB_API void
00115 mb_webservice_set_realm(MbWebService webservice, const char *str);
00116
00120 MB_API void
00121 mb_webservice_set_proxy_host(MbWebService webservice, const char *str);
00122
00126 MB_API void
00127 mb_webservice_set_proxy_port(MbWebService webservice, int port);
00128
00132 MB_API void
00133 mb_webservice_set_proxy_username(MbWebService webservice, const char *str);
00134
00138 MB_API void
00139 mb_webservice_set_proxy_password(MbWebService webservice, const char *str);
00140
00141
00142
00143
00144
00150 MB_API MbQuery
00151 mb_query_new(MbWebService ws, const char *client_id);
00152
00158 MB_API void
00159 mb_query_free(MbQuery query);
00160
00166 MB_API MbArtist
00167 mb_query_get_artist_by_id(MbQuery query, const char *id, MbArtistIncludes inc);
00168
00174 MB_API MbLabel
00175 mb_query_get_label_by_id(MbQuery query, const char *id, MbLabelIncludes inc);
00176
00182 MB_API MbRelease
00183 mb_query_get_release_by_id(MbQuery query, const char *id, MbReleaseIncludes inc);
00184
00185 MB_API MbReleaseGroup
00186 mb_query_get_release_group_by_id(MbQuery query, const char *id, MbReleaseGroupIncludes inc);
00187
00193 MB_API MbTrack
00194 mb_query_get_track_by_id(MbQuery query, const char *id, MbTrackIncludes inc);
00195
00201 MB_API MbUser
00202 mb_query_get_user_by_name(MbQuery query, const char *name);
00203
00204
00205
00206 MB_API void
00207 mb_result_list_free(MbResultList list);
00208
00209 MB_API int
00210 mb_result_list_get_size(MbResultList list);
00211
00212 MB_API int
00213 mb_result_list_get_score(MbResultList list, int index);
00214
00215 MB_API MbArtist
00216 mb_result_list_get_artist(MbResultList list, int index);
00217
00218 MB_API MbLabel
00219 mb_result_list_get_label(MbResultList list, int index);
00220
00221 MB_API MbRelease
00222 mb_result_list_get_release(MbResultList list, int index);
00223
00224 MB_API MbReleaseGroup
00225 mb_result_list_get_release_group(MbResultList list, int index);
00226
00227 MB_API MbTrack
00228 mb_result_list_get_track(MbResultList list, int index);
00229
00230 MB_API MbResultList
00231 mb_query_get_artists(MbQuery query, MbArtistFilter flt);
00232
00233 MB_API MbResultList
00234 mb_query_get_labels(MbQuery query, MbLabelFilter flt);
00235
00236 MB_API MbResultList
00237 mb_query_get_releases(MbQuery query, MbReleaseFilter flt);
00238
00239 MB_API MbResultList
00240 mb_query_get_release_groups(MbQuery query, MbReleaseGroupFilter flt);
00241
00242 MB_API MbResultList
00243 mb_query_get_tracks(MbQuery query, MbTrackFilter flt);
00244
00245
00246
00250 MB_API void
00251 mb_artist_free(MbArtist artist);
00252
00258 MB_API void
00259 mb_artist_get_id(MbArtist artist, char *str, int len);
00260
00266 MB_API void
00267 mb_artist_get_type(MbArtist artist, char *str, int len);
00268
00274 MB_API void
00275 mb_artist_get_name(MbArtist artist, char *str, int len);
00276
00282 MB_API void
00283 mb_artist_get_sortname(MbArtist artist, char *str, int len);
00284
00290 MB_API void
00291 mb_artist_get_disambiguation(MbArtist artist, char *str, int len);
00292
00298 MB_API void
00299 mb_artist_get_unique_name(MbArtist artist, char *str, int len);
00300
00306 MB_API void
00307 mb_artist_get_begin_date(MbArtist artist, char *str, int len);
00308
00314 MB_API void
00315 mb_artist_get_end_date(MbArtist artist, char *str, int len);
00316
00322 MB_API int
00323 mb_artist_get_num_aliases(MbArtist artist);
00324
00330 MB_API MbArtistAlias
00331 mb_artist_get_alias(MbArtist artist, int index);
00332
00338 MB_API int
00339 mb_artist_get_num_releases(MbArtist artist);
00340
00346 MB_API MbRelease
00347 mb_artist_get_release(MbArtist artist, int index);
00348
00354 MB_API int
00355 mb_artist_get_releases_offset(MbArtist artist);
00356
00362 MB_API int
00363 mb_artist_get_releases_count(MbArtist artist);
00364
00370 MB_API int
00371 mb_artist_get_num_relations(MbArtist artist);
00372
00378 MB_API MbRelation
00379 mb_artist_get_relation(MbArtist artist, int index);
00380
00381
00382
00383
00384
00388 MB_API void
00389 mb_label_free(MbLabel label);
00390
00396 MB_API void
00397 mb_label_get_id(MbLabel label, char *str, int len);
00398
00404 MB_API void
00405 mb_label_get_type(MbLabel label, char *str, int len);
00406
00412 MB_API int
00413 mb_label_get_code(MbLabel label);
00414
00420 MB_API void
00421 mb_label_get_name(MbLabel label, char *str, int len);
00422
00428 MB_API void
00429 mb_label_get_sortname(MbLabel label, char *str, int len);
00430
00436 MB_API void
00437 mb_label_get_disambiguation(MbLabel label, char *str, int len);
00438
00444 MB_API void
00445 mb_label_get_unique_name(MbLabel label, char *str, int len);
00446
00452 MB_API void
00453 mb_label_get_begin_date(MbLabel label, char *str, int len);
00454
00460 MB_API void
00461 mb_label_get_end_date(MbLabel label, char *str, int len);
00462
00468 MB_API int
00469 mb_label_get_num_aliases(MbLabel label);
00470
00476 MB_API MbLabelAlias
00477 mb_label_get_alias(MbLabel label, int index);
00478
00484 MB_API int
00485 mb_label_get_num_releases(MbLabel label);
00486
00492 MB_API MbRelease
00493 mb_label_get_release(MbLabel label, int index);
00494
00500 MB_API int
00501 mb_label_get_releases_offset(MbLabel label);
00502
00508 MB_API int
00509 mb_label_get_releases_count(MbLabel label);
00510
00516 MB_API int
00517 mb_label_get_num_relations(MbLabel label);
00518
00524 MB_API MbRelation
00525 mb_label_get_relation(MbLabel label, int index);
00526
00527
00528
00529
00530
00534 MB_API void
00535 mb_release_group_free(MbReleaseGroup release_group);
00536
00542 MB_API void
00543 mb_release_group_get_id(MbReleaseGroup release_group, char *str, int len);
00544
00550 MB_API void
00551 mb_release_group_get_title(MbReleaseGroup release_group, char *str, int len);
00552
00558 MB_API void
00559 mb_release_group_get_type(MbReleaseGroup release_group, char *str, int len);
00560
00561
00562
00563
00564
00568 MB_API void
00569 mb_release_free(MbRelease release);
00570
00576 MB_API void
00577 mb_release_get_id(MbRelease release, char *str, int len);
00578
00584 MB_API void
00585 mb_release_get_title(MbRelease release, char *str, int len);
00586
00592 MB_API void
00593 mb_release_get_text_language(MbRelease release, char *str, int len);
00594
00600 MB_API void
00601 mb_release_get_text_script(MbRelease release, char *str, int len);
00602
00608 MB_API void
00609 mb_release_get_asin(MbRelease release, char *str, int len);
00610
00616 MB_API MbArtist
00617 mb_release_get_artist(MbRelease release);
00618
00624 MB_API int
00625 mb_release_get_tracks_offset(MbRelease release);
00626
00632 MB_API int
00633 mb_release_get_tracks_count(MbRelease release);
00634
00640 MB_API int
00641 mb_release_get_num_relations(MbRelease release);
00642
00648 MB_API MbRelation
00649 mb_release_get_relation(MbRelease release, int index);
00650
00656 MB_API int
00657 mb_release_get_num_tracks(MbRelease release);
00658
00664 MB_API MbTrack
00665 mb_release_get_track(MbRelease release, int index);
00666
00672 MB_API int
00673 mb_release_get_num_discs(MbRelease release);
00674
00680 MB_API MbDisc
00681 mb_release_get_disc(MbRelease release, int index);
00682
00688 MB_API int
00689 mb_release_get_num_release_events(MbRelease release);
00690
00696 MB_API MbReleaseEvent
00697 mb_release_get_release_event(MbRelease release, int index);
00698
00704 MB_API int
00705 mb_release_get_num_types(MbRelease release);
00706
00712 MB_API void
00713 mb_release_get_type(MbRelease release, int index, char *str, int len);
00714
00715
00716
00717
00718
00722 MB_API void
00723 mb_track_free(MbTrack track);
00724
00730 MB_API void
00731 mb_track_get_id(MbTrack track, char *str, int len);
00732
00738 MB_API void
00739 mb_track_get_title(MbTrack track, char *str, int len);
00740
00746 MB_API int
00747 mb_track_get_duration(MbTrack track);
00748
00754 MB_API int
00755 mb_track_get_num_relations(MbTrack track);
00756
00762 MB_API MbRelation
00763 mb_track_get_relation(MbTrack track, int index);
00764
00770 MB_API MbArtist
00771 mb_track_get_artist(MbTrack track);
00772
00773
00774
00775
00776
00782 MB_API void
00783 mb_artist_alias_get_value(MbArtistAlias alias, char *str, int len);
00784
00790 MB_API void
00791 mb_artist_alias_get_type(MbArtistAlias alias, char *str, int len);
00792
00798 MB_API void
00799 mb_artist_alias_get_script(MbArtistAlias alias, char *str, int len);
00800
00801
00802
00803
00804
00808 MB_API void
00809 mb_user_free(MbUser user);
00810
00816 MB_API void
00817 mb_user_get_name(MbUser user, char *str, int len);
00818
00824 MB_API int
00825 mb_user_get_show_nag(MbUser user);
00826
00832 MB_API int
00833 mb_user_get_num_types(MbUser user);
00834
00840 MB_API void
00841 mb_user_get_type(MbUser user, int index, char *str, int len);
00842
00843
00844
00845
00846
00847 MB_API MbArtistIncludes
00848 mb_artist_includes_new();
00849
00850 MB_API void
00851 mb_artist_includes_free(MbArtistIncludes inc);
00852
00853 MB_API MbArtistIncludes
00854 mb_artist_includes_aliases(MbArtistIncludes inc);
00855
00856 MB_API MbArtistIncludes
00857 mb_artist_includes_releases(MbArtistIncludes inc, const char *type);
00858
00859 MB_API MbArtistIncludes
00860 mb_artist_includes_va_releases(MbArtistIncludes inc, const char *type);
00861
00862 MB_API MbArtistIncludes
00863 mb_artist_includes_artist_relations(MbArtistIncludes inc);
00864
00865 MB_API MbArtistIncludes
00866 mb_artist_includes_release_relations(MbArtistIncludes inc);
00867
00868 MB_API MbArtistIncludes
00869 mb_artist_includes_track_relations(MbArtistIncludes inc);
00870
00871 MB_API MbArtistIncludes
00872 mb_artist_includes_url_relations(MbArtistIncludes inc);
00873
00874 MB_API MbArtistIncludes
00875 mb_artist_includes_release_events(MbArtistIncludes inc);
00876
00877 MB_API MbArtistIncludes
00878 mb_artist_includes_ratings(MbArtistIncludes inc);
00879
00880 MB_API MbArtistIncludes
00881 mb_artist_includes_tags(MbArtistIncludes inc);
00882
00883
00884
00885
00886
00887 MB_API MbLabelIncludes
00888 mb_label_includes_new();
00889
00890 MB_API void
00891 mb_label_includes_free(MbLabelIncludes inc);
00892
00893 MB_API MbLabelIncludes
00894 mb_label_includes_aliases(MbLabelIncludes inc);
00895
00896 MB_API MbLabelIncludes
00897 mb_label_includes_label_relations(MbLabelIncludes inc);
00898
00899 MB_API MbLabelIncludes
00900 mb_label_includes_release_relations(MbLabelIncludes inc);
00901
00902 MB_API MbLabelIncludes
00903 mb_label_includes_track_relations(MbLabelIncludes inc);
00904
00905 MB_API MbLabelIncludes
00906 mb_label_includes_url_relations(MbLabelIncludes inc);
00907
00908 MB_API MbLabelIncludes
00909 mb_label_includes_ratings(MbLabelIncludes inc);
00910
00911 MB_API MbLabelIncludes
00912 mb_label_includes_tags(MbLabelIncludes inc);
00913
00914
00915
00916
00917
00918 MB_API MbReleaseIncludes
00919 mb_release_includes_new();
00920
00921 MB_API void
00922 mb_release_includes_free(MbReleaseIncludes inc);
00923
00924 MB_API MbReleaseIncludes
00925 mb_release_includes_artist(MbReleaseIncludes inc);
00926
00927 MB_API MbReleaseIncludes
00928 mb_release_includes_counts(MbReleaseIncludes inc);
00929
00930 MB_API MbReleaseIncludes
00931 mb_release_includes_release_events(MbReleaseIncludes inc);
00932
00933 MB_API MbReleaseIncludes
00934 mb_release_includes_discs(MbReleaseIncludes inc);
00935
00936 MB_API MbReleaseIncludes
00937 mb_release_includes_tracks(MbReleaseIncludes inc);
00938
00939 MB_API MbReleaseIncludes
00940 mb_release_includes_artist_relations(MbReleaseIncludes inc);
00941
00942 MB_API MbReleaseIncludes
00943 mb_release_includes_release_relations(MbReleaseIncludes inc);
00944
00945 MB_API MbReleaseIncludes
00946 mb_release_includes_track_relations(MbReleaseIncludes inc);
00947
00948 MB_API MbReleaseIncludes
00949 mb_release_includes_url_relations(MbReleaseIncludes inc);
00950
00951 MB_API MbReleaseIncludes
00952 mb_release_includes_ratings(MbReleaseIncludes inc);
00953
00954 MB_API MbReleaseIncludes
00955 mb_release_includes_tags(MbReleaseIncludes inc);
00956
00957
00958
00959
00960
00961 MB_API MbTrackIncludes
00962 mb_track_includes_new();
00963
00964 MB_API void
00965 mb_track_includes_free(MbArtistIncludes inc);
00966
00967 MB_API MbTrackIncludes
00968 mb_track_includes_artist(MbArtistIncludes inc);
00969
00970 MB_API MbTrackIncludes
00971 mb_track_includes_releases(MbArtistIncludes inc);
00972
00973 MB_API MbTrackIncludes
00974 mb_track_includes_puids(MbArtistIncludes inc);
00975
00976 MB_API MbTrackIncludes
00977 mb_track_includes_artist_relations(MbArtistIncludes inc);
00978
00979 MB_API MbTrackIncludes
00980 mb_track_includes_release_relations(MbTrackIncludes inc);
00981
00982 MB_API MbTrackIncludes
00983 mb_track_includes_track_relations(MbTrackIncludes inc);
00984
00985 MB_API MbTrackIncludes
00986 mb_track_includes_url_relations(MbTrackIncludes inc);
00987
00988 MB_API MbTrackIncludes
00989 mb_track_includes_ratings(MbTrackIncludes inc);
00990
00991 MB_API MbTrackIncludes
00992 mb_track_includes_tags(MbTrackIncludes inc);
00993
00994
00995
00996
00997
00998 MB_API MbArtistFilter
00999 mb_artist_filter_new();
01000
01001 MB_API void
01002 mb_artist_filter_free(MbArtistFilter flt);
01003
01004 MB_API MbArtistFilter
01005 mb_artist_filter_name(MbArtistFilter flt, const char *value);
01006
01007 MB_API MbArtistFilter
01008 mb_artist_filter_query(MbArtistFilter flt, const char *value);
01009
01010 MB_API MbArtistFilter
01011 mb_artist_filter_limit(MbArtistFilter flt, int value);
01012
01013
01014
01015
01016
01017 MB_API MbLabelFilter
01018 mb_label_filter_new();
01019
01020 MB_API void
01021 mb_label_filter_free(MbLabelFilter flt);
01022
01023 MB_API MbLabelFilter
01024 mb_label_filter_name(MbLabelFilter flt, const char *value);
01025
01026 MB_API MbLabelFilter
01027 mb_label_filter_query(MbLabelFilter flt, const char *value);
01028
01029 MB_API MbLabelFilter
01030 mb_label_filter_limit(MbLabelFilter flt, int value);
01031
01032
01033
01034
01035
01036 MB_API MbReleaseFilter
01037 mb_release_filter_new();
01038
01039 MB_API void
01040 mb_release_filter_free(MbReleaseFilter flt);
01041
01042 MB_API MbReleaseFilter
01043 mb_release_filter_title(MbReleaseFilter flt, const char *value);
01044
01045 MB_API MbReleaseFilter
01046 mb_release_filter_disc_id(MbReleaseFilter flt, const char *value);
01047
01048 MB_API MbReleaseFilter
01049 mb_release_filter_release_type(MbReleaseFilter flt, const char *value);
01050
01051 MB_API MbReleaseFilter
01052 mb_release_filter_artist_name(MbReleaseFilter flt, const char *value);
01053
01054 MB_API MbReleaseFilter
01055 mb_release_filter_artist_id(MbReleaseFilter flt, const char *value);
01056
01057 MB_API MbReleaseFilter
01058 mb_release_filter_query(MbReleaseFilter flt, const char *value);
01059
01060 MB_API MbReleaseFilter
01061 mb_release_filter_limit(MbReleaseFilter flt, int value);
01062
01063
01064
01065
01066
01067 MB_API MbTrackFilter
01068 mb_track_filter_new();
01069
01070 MB_API void
01071 mb_track_filter_free(MbTrackFilter flt);
01072
01073 MB_API MbTrackFilter
01074 mb_track_filter_title(MbTrackFilter flt, const char *value);
01075
01076 MB_API MbTrackFilter
01077 mb_track_filter_artist_name(MbTrackFilter flt, const char *value);
01078
01079 MB_API MbTrackFilter
01080 mb_track_filter_artist_id(MbTrackFilter flt, const char *value);
01081
01082 MB_API MbTrackFilter
01083 mb_track_filter_release_title(MbTrackFilter flt, const char *value);
01084
01085 MB_API MbTrackFilter
01086 mb_track_filter_release_id(MbTrackFilter flt, const char *value);
01087
01088 MB_API MbTrackFilter
01089 mb_track_filter_duration(MbTrackFilter flt, int value);
01090
01091 MB_API MbTrackFilter
01092 mb_track_filter_puid(MbTrackFilter flt, const char *value);
01093
01094 MB_API MbTrackFilter
01095 mb_track_filter_query(MbTrackFilter flt, const char *value);
01096
01097 MB_API MbTrackFilter
01098 mb_track_filter_limit(MbTrackFilter flt, int value);
01099
01100
01101
01102
01103
01104 MB_API MbUserFilter
01105 mb_user_filter_new();
01106
01107 MB_API void
01108 mb_user_filter_free(MbUserFilter flt);
01109
01110 MB_API MbUserFilter
01111 mb_user_filter_name(MbUserFilter flt, const char *value);
01112
01113
01114
01115
01116
01122 MB_API void
01123 mb_release_event_get_country(MbReleaseEvent releaseEvent, char *str, int len);
01124
01130 MB_API void
01131 mb_release_event_get_date(MbReleaseEvent releaseEvent, char *str, int len);
01132
01133
01134
01135
01136
01142 MB_API void
01143 mb_relation_get_type(MbRelation relation, char *str, int len);
01144
01150 MB_API void
01151 mb_relation_get_target_id(MbRelation relation, char *str, int len);
01152
01158 MB_API void
01159 mb_relation_get_target_type(MbRelation relation, char *str, int len);
01160
01166 MB_API void
01167 mb_relation_get_begin_date(MbRelation relation, char *str, int len);
01168
01174 MB_API void
01175 mb_relation_get_end_date(MbRelation relation, char *str, int len);
01176
01182 MB_API int
01183 mb_relation_get_direction(MbRelation relation);
01184
01190 MB_API MbEntity
01191 mb_relation_get_target(MbRelation relation);
01192
01198 MB_API int
01199 mb_relation_get_num_attributes(MbRelation relation);
01200
01206 MB_API void
01207 mb_relation_get_attribute(MbRelation relation, int index, char *str, int len);
01208
01209
01210
01211
01212
01218 MB_API void
01219 mb_disc_get_id(MbDisc disc, char *str, int len);
01220
01226 MB_API int
01227 mb_disc_get_sectors(MbDisc disc);
01228
01234 MB_API int
01235 mb_disc_get_first_track_num(MbDisc disc);
01236
01242 MB_API int
01243 mb_disc_get_last_track_num(MbDisc disc);
01244
01250 MB_API MbDisc
01251 mb_read_disc(const char *device_name);
01252
01258 MB_API void
01259 mb_get_submission_url(MbDisc disc, const char *host, int port, char *str, int len);
01260
01261
01262
01263
01264
01270 MB_API void
01271 mb_extract_fragment(const char *uri, char *fragment, int len);
01272
01278 MB_API void
01279 mb_extract_uuid(const char *uri, char *uuid, int len);
01280
01281
01282
01283 #ifdef __cplusplus
01284 }
01285 #endif
01286
01287 #endif