libmusicbrainz3  3.0.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
mb_c.h
Go to the documentation of this file.
1 /*
2  * MusicBrainz -- The Internet music metadatabase
3  *
4  * Copyright (C) 2006 Lukas Lalinsky
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  *
21  */
22 
23 #ifndef __MUSICBRAINZ3_MB_C_H__
24 #define __MUSICBRAINZ3_MB_C_H__
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #include <musicbrainz3/defines.h>
31 
32 /* {{{ Typedefs */
33 
34 typedef void *MbArtist;
35 typedef void *MbArtistAlias;
36 typedef void *MbArtistFilter;
37 typedef void *MbArtistIncludes;
38 typedef void *MbLabel;
39 typedef void *MbLabelAlias;
40 typedef void *MbLabelFilter;
41 typedef void *MbLabelIncludes;
42 typedef void *MbDisc;
43 typedef void *MbEntity;
44 typedef void *MbQuery;
45 typedef void *MbRelation;
46 typedef void *MbRelease;
47 typedef void *MbReleaseEvent;
48 typedef void *MbReleaseGroup;
49 typedef void *MbReleaseGroupFilter;
50 typedef void *MbReleaseGroupIncludes;
51 typedef void *MbReleaseFilter;
52 typedef void *MbReleaseIncludes;
53 typedef void *MbResultList;
54 typedef void *MbTrack;
55 typedef void *MbTrackFilter;
56 typedef void *MbTrackIncludes;
57 typedef void *MbUser;
58 typedef void *MbUserFilter;
59 typedef void *MbWebService;
60 
61 /* }}} */
62 
63 /* {{{ MusicBrainz::WebService */
64 
70 MB_API MbWebService
72 
78 MB_API void
79 mb_webservice_free(MbWebService webservice);
80 
84 MB_API void
85 mb_webservice_set_host(MbWebService webservice, const char *str);
86 
90 MB_API void
91 mb_webservice_set_port(MbWebService webservice, int port);
92 
96 MB_API void
97 mb_webservice_set_path_prefix(MbWebService webservice, const char *str);
98 
102 MB_API void
103 mb_webservice_set_username(MbWebService webservice, const char *str);
104 
108 MB_API void
109 mb_webservice_set_password(MbWebService webservice, const char *str);
110 
114 MB_API void
115 mb_webservice_set_realm(MbWebService webservice, const char *str);
116 
120 MB_API void
121 mb_webservice_set_proxy_host(MbWebService webservice, const char *str);
122 
126 MB_API void
127 mb_webservice_set_proxy_port(MbWebService webservice, int port);
128 
132 MB_API void
133 mb_webservice_set_proxy_username(MbWebService webservice, const char *str);
134 
138 MB_API void
139 mb_webservice_set_proxy_password(MbWebService webservice, const char *str);
140 
141 /* }}} */
142 
143 /* {{{ MusicBrainz::Query */
144 
150 MB_API MbQuery
151 mb_query_new(MbWebService ws, const char *client_id);
152 
158 MB_API void
159 mb_query_free(MbQuery query);
160 
166 MB_API MbArtist
167 mb_query_get_artist_by_id(MbQuery query, const char *id, MbArtistIncludes inc);
168 
174 MB_API MbLabel
175 mb_query_get_label_by_id(MbQuery query, const char *id, MbLabelIncludes inc);
176 
182 MB_API MbRelease
183 mb_query_get_release_by_id(MbQuery query, const char *id, MbReleaseIncludes inc);
184 
185 MB_API MbReleaseGroup
186 mb_query_get_release_group_by_id(MbQuery query, const char *id, MbReleaseGroupIncludes inc);
187 
193 MB_API MbTrack
194 mb_query_get_track_by_id(MbQuery query, const char *id, MbTrackIncludes inc);
195 
201 MB_API MbUser
202 mb_query_get_user_by_name(MbQuery query, const char *name);
203 
204 /* }}} */
205 
206 MB_API void
207 mb_result_list_free(MbResultList list);
208 
209 MB_API int
210 mb_result_list_get_size(MbResultList list);
211 
212 MB_API int
213 mb_result_list_get_score(MbResultList list, int index);
214 
215 MB_API MbArtist
216 mb_result_list_get_artist(MbResultList list, int index);
217 
218 MB_API MbLabel
219 mb_result_list_get_label(MbResultList list, int index);
220 
221 MB_API MbRelease
222 mb_result_list_get_release(MbResultList list, int index);
223 
224 MB_API MbReleaseGroup
225 mb_result_list_get_release_group(MbResultList list, int index);
226 
227 MB_API MbTrack
228 mb_result_list_get_track(MbResultList list, int index);
229 
230 MB_API MbResultList
231 mb_query_get_artists(MbQuery query, MbArtistFilter flt);
232 
233 MB_API MbResultList
234 mb_query_get_labels(MbQuery query, MbLabelFilter flt);
235 
236 MB_API MbResultList
237 mb_query_get_releases(MbQuery query, MbReleaseFilter flt);
238 
239 MB_API MbResultList
240 mb_query_get_release_groups(MbQuery query, MbReleaseGroupFilter flt);
241 
242 MB_API MbResultList
243 mb_query_get_tracks(MbQuery query, MbTrackFilter flt);
244 
245 /* {{{ MusicBrainz::Artist */
246 
250 MB_API void
251 mb_artist_free(MbArtist artist);
252 
258 MB_API void
259 mb_artist_get_id(MbArtist artist, char *str, int len);
260 
266 MB_API void
267 mb_artist_get_type(MbArtist artist, char *str, int len);
268 
274 MB_API void
275 mb_artist_get_name(MbArtist artist, char *str, int len);
276 
282 MB_API void
283 mb_artist_get_sortname(MbArtist artist, char *str, int len);
284 
290 MB_API void
291 mb_artist_get_disambiguation(MbArtist artist, char *str, int len);
292 
298 MB_API void
299 mb_artist_get_unique_name(MbArtist artist, char *str, int len);
300 
306 MB_API void
307 mb_artist_get_begin_date(MbArtist artist, char *str, int len);
308 
314 MB_API void
315 mb_artist_get_end_date(MbArtist artist, char *str, int len);
316 
322 MB_API int
323 mb_artist_get_num_aliases(MbArtist artist);
324 
330 MB_API MbArtistAlias
331 mb_artist_get_alias(MbArtist artist, int index);
332 
338 MB_API int
339 mb_artist_get_num_releases(MbArtist artist);
340 
346 MB_API MbRelease
347 mb_artist_get_release(MbArtist artist, int index);
348 
354 MB_API int
355 mb_artist_get_releases_offset(MbArtist artist);
356 
362 MB_API int
363 mb_artist_get_releases_count(MbArtist artist);
364 
370 MB_API int
371 mb_artist_get_num_relations(MbArtist artist);
372 
378 MB_API MbRelation
379 mb_artist_get_relation(MbArtist artist, int index);
380 
381 /* }}} */
382 
383 /* {{{ MusicBrainz::Label */
384 
388 MB_API void
389 mb_label_free(MbLabel label);
390 
396 MB_API void
397 mb_label_get_id(MbLabel label, char *str, int len);
398 
404 MB_API void
405 mb_label_get_type(MbLabel label, char *str, int len);
406 
412 MB_API int
413 mb_label_get_code(MbLabel label);
414 
420 MB_API void
421 mb_label_get_name(MbLabel label, char *str, int len);
422 
428 MB_API void
429 mb_label_get_sortname(MbLabel label, char *str, int len);
430 
436 MB_API void
437 mb_label_get_disambiguation(MbLabel label, char *str, int len);
438 
444 MB_API void
445 mb_label_get_unique_name(MbLabel label, char *str, int len);
446 
452 MB_API void
453 mb_label_get_begin_date(MbLabel label, char *str, int len);
454 
460 MB_API void
461 mb_label_get_end_date(MbLabel label, char *str, int len);
462 
468 MB_API int
469 mb_label_get_num_aliases(MbLabel label);
470 
476 MB_API MbLabelAlias
477 mb_label_get_alias(MbLabel label, int index);
478 
484 MB_API int
485 mb_label_get_num_releases(MbLabel label);
486 
492 MB_API MbRelease
493 mb_label_get_release(MbLabel label, int index);
494 
500 MB_API int
501 mb_label_get_releases_offset(MbLabel label);
502 
508 MB_API int
509 mb_label_get_releases_count(MbLabel label);
510 
516 MB_API int
517 mb_label_get_num_relations(MbLabel label);
518 
524 MB_API MbRelation
525 mb_label_get_relation(MbLabel label, int index);
526 
527 /* }}} */
528 
529 /* {{{ MusicBrainz::ReleaseGroup */
530 
534 MB_API void
535 mb_release_group_free(MbReleaseGroup release_group);
536 
542 MB_API void
543 mb_release_group_get_id(MbReleaseGroup release_group, char *str, int len);
544 
550 MB_API void
551 mb_release_group_get_title(MbReleaseGroup release_group, char *str, int len);
552 
558 MB_API void
559 mb_release_group_get_type(MbReleaseGroup release_group, char *str, int len);
560 
561 /* }}} */
562 
563 /* {{{ MusicBrainz::Release */
564 
568 MB_API void
569 mb_release_free(MbRelease release);
570 
576 MB_API void
577 mb_release_get_id(MbRelease release, char *str, int len);
578 
584 MB_API void
585 mb_release_get_title(MbRelease release, char *str, int len);
586 
592 MB_API void
593 mb_release_get_text_language(MbRelease release, char *str, int len);
594 
600 MB_API void
601 mb_release_get_text_script(MbRelease release, char *str, int len);
602 
608 MB_API void
609 mb_release_get_asin(MbRelease release, char *str, int len);
610 
616 MB_API MbArtist
617 mb_release_get_artist(MbRelease release);
618 
624 MB_API int
625 mb_release_get_tracks_offset(MbRelease release);
626 
632 MB_API int
633 mb_release_get_tracks_count(MbRelease release);
634 
640 MB_API int
641 mb_release_get_num_relations(MbRelease release);
642 
648 MB_API MbRelation
649 mb_release_get_relation(MbRelease release, int index);
650 
656 MB_API int
657 mb_release_get_num_tracks(MbRelease release);
658 
664 MB_API MbTrack
665 mb_release_get_track(MbRelease release, int index);
666 
672 MB_API int
673 mb_release_get_num_discs(MbRelease release);
674 
680 MB_API MbDisc
681 mb_release_get_disc(MbRelease release, int index);
682 
688 MB_API int
689 mb_release_get_num_release_events(MbRelease release);
690 
696 MB_API MbReleaseEvent
697 mb_release_get_release_event(MbRelease release, int index);
698 
704 MB_API int
705 mb_release_get_num_types(MbRelease release);
706 
712 MB_API void
713 mb_release_get_type(MbRelease release, int index, char *str, int len);
714 
715 /* }}} */
716 
717 /* {{{ MusicBrainz::Track */
718 
722 MB_API void
723 mb_track_free(MbTrack track);
724 
730 MB_API void
731 mb_track_get_id(MbTrack track, char *str, int len);
732 
738 MB_API void
739 mb_track_get_title(MbTrack track, char *str, int len);
740 
746 MB_API int
747 mb_track_get_duration(MbTrack track);
748 
754 MB_API int
755 mb_track_get_num_relations(MbTrack track);
756 
762 MB_API MbRelation
763 mb_track_get_relation(MbTrack track, int index);
764 
770 MB_API MbArtist
771 mb_track_get_artist(MbTrack track);
772 
773 /* }}} */
774 
775 /* {{{ MusicBrainz::ArtistAlias */
776 
782 MB_API void
783 mb_artist_alias_get_value(MbArtistAlias alias, char *str, int len);
784 
790 MB_API void
791 mb_artist_alias_get_type(MbArtistAlias alias, char *str, int len);
792 
798 MB_API void
799 mb_artist_alias_get_script(MbArtistAlias alias, char *str, int len);
800 
801 /* }}} */
802 
803 /* {{{ MusicBrainz::User */
804 
808 MB_API void
809 mb_user_free(MbUser user);
810 
816 MB_API void
817 mb_user_get_name(MbUser user, char *str, int len);
818 
824 MB_API int
825 mb_user_get_show_nag(MbUser user);
826 
832 MB_API int
833 mb_user_get_num_types(MbUser user);
834 
840 MB_API void
841 mb_user_get_type(MbUser user, int index, char *str, int len);
842 
843 /* }}} */
844 
845 /* {{{ MusicBrainz::ArtistIncludes */
846 
847 MB_API MbArtistIncludes
849 
850 MB_API void
851 mb_artist_includes_free(MbArtistIncludes inc);
852 
853 MB_API MbArtistIncludes
854 mb_artist_includes_aliases(MbArtistIncludes inc);
855 
856 MB_API MbArtistIncludes
857 mb_artist_includes_releases(MbArtistIncludes inc, const char *type);
858 
859 MB_API MbArtistIncludes
860 mb_artist_includes_va_releases(MbArtistIncludes inc, const char *type);
861 
862 MB_API MbArtistIncludes
863 mb_artist_includes_artist_relations(MbArtistIncludes inc);
864 
865 MB_API MbArtistIncludes
866 mb_artist_includes_release_relations(MbArtistIncludes inc);
867 
868 MB_API MbArtistIncludes
869 mb_artist_includes_track_relations(MbArtistIncludes inc);
870 
871 MB_API MbArtistIncludes
872 mb_artist_includes_url_relations(MbArtistIncludes inc);
873 
874 MB_API MbArtistIncludes
875 mb_artist_includes_release_events(MbArtistIncludes inc);
876 
877 MB_API MbArtistIncludes
878 mb_artist_includes_ratings(MbArtistIncludes inc);
879 
880 MB_API MbArtistIncludes
881 mb_artist_includes_tags(MbArtistIncludes inc);
882 
883 /* }}} */
884 
885 /* {{{ MusicBrainz::LabelIncludes */
886 
887 MB_API MbLabelIncludes
889 
890 MB_API void
891 mb_label_includes_free(MbLabelIncludes inc);
892 
893 MB_API MbLabelIncludes
894 mb_label_includes_aliases(MbLabelIncludes inc);
895 
896 MB_API MbLabelIncludes
897 mb_label_includes_label_relations(MbLabelIncludes inc);
898 
899 MB_API MbLabelIncludes
900 mb_label_includes_release_relations(MbLabelIncludes inc);
901 
902 MB_API MbLabelIncludes
903 mb_label_includes_track_relations(MbLabelIncludes inc);
904 
905 MB_API MbLabelIncludes
906 mb_label_includes_url_relations(MbLabelIncludes inc);
907 
908 MB_API MbLabelIncludes
909 mb_label_includes_ratings(MbLabelIncludes inc);
910 
911 MB_API MbLabelIncludes
912 mb_label_includes_tags(MbLabelIncludes inc);
913 
914 /* }}} */
915 
916 /* {{{ MusicBrainz::ReleaseIncludes */
917 
918 MB_API MbReleaseIncludes
920 
921 MB_API void
922 mb_release_includes_free(MbReleaseIncludes inc);
923 
924 MB_API MbReleaseIncludes
925 mb_release_includes_artist(MbReleaseIncludes inc);
926 
927 MB_API MbReleaseIncludes
928 mb_release_includes_counts(MbReleaseIncludes inc);
929 
930 MB_API MbReleaseIncludes
931 mb_release_includes_release_events(MbReleaseIncludes inc);
932 
933 MB_API MbReleaseIncludes
934 mb_release_includes_discs(MbReleaseIncludes inc);
935 
936 MB_API MbReleaseIncludes
937 mb_release_includes_tracks(MbReleaseIncludes inc);
938 
939 MB_API MbReleaseIncludes
940 mb_release_includes_artist_relations(MbReleaseIncludes inc);
941 
942 MB_API MbReleaseIncludes
943 mb_release_includes_release_relations(MbReleaseIncludes inc);
944 
945 MB_API MbReleaseIncludes
946 mb_release_includes_track_relations(MbReleaseIncludes inc);
947 
948 MB_API MbReleaseIncludes
949 mb_release_includes_url_relations(MbReleaseIncludes inc);
950 
951 MB_API MbReleaseIncludes
952 mb_release_includes_ratings(MbReleaseIncludes inc);
953 
954 MB_API MbReleaseIncludes
955 mb_release_includes_tags(MbReleaseIncludes inc);
956 
957 /* }}} */
958 
959 /* {{{ MusicBrainz::TrackIncludes */
960 
961 MB_API MbTrackIncludes
963 
964 MB_API void
965 mb_track_includes_free(MbArtistIncludes inc);
966 
967 MB_API MbTrackIncludes
968 mb_track_includes_artist(MbArtistIncludes inc);
969 
970 MB_API MbTrackIncludes
971 mb_track_includes_releases(MbArtistIncludes inc);
972 
973 MB_API MbTrackIncludes
974 mb_track_includes_puids(MbArtistIncludes inc);
975 
976 MB_API MbTrackIncludes
977 mb_track_includes_artist_relations(MbArtistIncludes inc);
978 
979 MB_API MbTrackIncludes
980 mb_track_includes_release_relations(MbTrackIncludes inc);
981 
982 MB_API MbTrackIncludes
983 mb_track_includes_track_relations(MbTrackIncludes inc);
984 
985 MB_API MbTrackIncludes
986 mb_track_includes_url_relations(MbTrackIncludes inc);
987 
988 MB_API MbTrackIncludes
989 mb_track_includes_ratings(MbTrackIncludes inc);
990 
991 MB_API MbTrackIncludes
992 mb_track_includes_tags(MbTrackIncludes inc);
993 
994 /* }}} */
995 
996 /* {{{ MusicBrainz::MbArtistFilter */
997 
998 MB_API MbArtistFilter
1000 
1001 MB_API void
1002 mb_artist_filter_free(MbArtistFilter flt);
1003 
1004 MB_API MbArtistFilter
1005 mb_artist_filter_name(MbArtistFilter flt, const char *value);
1006 
1007 MB_API MbArtistFilter
1008 mb_artist_filter_query(MbArtistFilter flt, const char *value);
1009 
1010 MB_API MbArtistFilter
1011 mb_artist_filter_limit(MbArtistFilter flt, int value);
1012 
1013 /* }}} */
1014 
1015 /* {{{ MusicBrainz::MbLabelFilter */
1016 
1017 MB_API MbLabelFilter
1019 
1020 MB_API void
1021 mb_label_filter_free(MbLabelFilter flt);
1022 
1023 MB_API MbLabelFilter
1024 mb_label_filter_name(MbLabelFilter flt, const char *value);
1025 
1026 MB_API MbLabelFilter
1027 mb_label_filter_query(MbLabelFilter flt, const char *value);
1028 
1029 MB_API MbLabelFilter
1030 mb_label_filter_limit(MbLabelFilter flt, int value);
1031 
1032 /* }}} */
1033 
1034 /* {{{ MusicBrainz::MbReleaseFilter */
1035 
1036 MB_API MbReleaseFilter
1038 
1039 MB_API void
1040 mb_release_filter_free(MbReleaseFilter flt);
1041 
1042 MB_API MbReleaseFilter
1043 mb_release_filter_title(MbReleaseFilter flt, const char *value);
1044 
1045 MB_API MbReleaseFilter
1046 mb_release_filter_disc_id(MbReleaseFilter flt, const char *value);
1047 
1048 MB_API MbReleaseFilter
1049 mb_release_filter_release_type(MbReleaseFilter flt, const char *value);
1050 
1051 MB_API MbReleaseFilter
1052 mb_release_filter_artist_name(MbReleaseFilter flt, const char *value);
1053 
1054 MB_API MbReleaseFilter
1055 mb_release_filter_artist_id(MbReleaseFilter flt, const char *value);
1056 
1057 MB_API MbReleaseFilter
1058 mb_release_filter_query(MbReleaseFilter flt, const char *value);
1059 
1060 MB_API MbReleaseFilter
1061 mb_release_filter_limit(MbReleaseFilter flt, int value);
1062 
1063 /* }}} */
1064 
1065 /* {{{ MusicBrainz::MbTrackFilter */
1066 
1067 MB_API MbTrackFilter
1069 
1070 MB_API void
1071 mb_track_filter_free(MbTrackFilter flt);
1072 
1073 MB_API MbTrackFilter
1074 mb_track_filter_title(MbTrackFilter flt, const char *value);
1075 
1076 MB_API MbTrackFilter
1077 mb_track_filter_artist_name(MbTrackFilter flt, const char *value);
1078 
1079 MB_API MbTrackFilter
1080 mb_track_filter_artist_id(MbTrackFilter flt, const char *value);
1081 
1082 MB_API MbTrackFilter
1083 mb_track_filter_release_title(MbTrackFilter flt, const char *value);
1084 
1085 MB_API MbTrackFilter
1086 mb_track_filter_release_id(MbTrackFilter flt, const char *value);
1087 
1088 MB_API MbTrackFilter
1089 mb_track_filter_duration(MbTrackFilter flt, int value);
1090 
1091 MB_API MbTrackFilter
1092 mb_track_filter_puid(MbTrackFilter flt, const char *value);
1093 
1094 MB_API MbTrackFilter
1095 mb_track_filter_query(MbTrackFilter flt, const char *value);
1096 
1097 MB_API MbTrackFilter
1098 mb_track_filter_limit(MbTrackFilter flt, int value);
1099 
1100 /* }}} */
1101 
1102 /* {{{ MusicBrainz::MbUserFilter */
1103 
1104 MB_API MbUserFilter
1106 
1107 MB_API void
1108 mb_user_filter_free(MbUserFilter flt);
1109 
1110 MB_API MbUserFilter
1111 mb_user_filter_name(MbUserFilter flt, const char *value);
1112 
1113 /* }}} */
1114 
1115 /* {{{ MusicBrainz::ArtistAlias */
1116 
1122 MB_API void
1123 mb_release_event_get_country(MbReleaseEvent releaseEvent, char *str, int len);
1124 
1130 MB_API void
1131 mb_release_event_get_date(MbReleaseEvent releaseEvent, char *str, int len);
1132 
1133 /* }}} */
1134 
1135 /* {{{ MusicBrainz::Relation */
1136 
1142 MB_API void
1143 mb_relation_get_type(MbRelation relation, char *str, int len);
1144 
1150 MB_API void
1151 mb_relation_get_target_id(MbRelation relation, char *str, int len);
1152 
1158 MB_API void
1159 mb_relation_get_target_type(MbRelation relation, char *str, int len);
1160 
1166 MB_API void
1167 mb_relation_get_begin_date(MbRelation relation, char *str, int len);
1168 
1174 MB_API void
1175 mb_relation_get_end_date(MbRelation relation, char *str, int len);
1176 
1182 MB_API int
1183 mb_relation_get_direction(MbRelation relation);
1184 
1190 MB_API MbEntity
1191 mb_relation_get_target(MbRelation relation);
1192 
1198 MB_API int
1199 mb_relation_get_num_attributes(MbRelation relation);
1200 
1206 MB_API void
1207 mb_relation_get_attribute(MbRelation relation, int index, char *str, int len);
1208 
1209 /* }}} */
1210 
1211 /* {{{ MusicBrainz::Disc */
1212 
1218 MB_API void
1219 mb_disc_get_id(MbDisc disc, char *str, int len);
1220 
1226 MB_API int
1227 mb_disc_get_sectors(MbDisc disc);
1228 
1234 MB_API int
1235 mb_disc_get_first_track_num(MbDisc disc);
1236 
1242 MB_API int
1243 mb_disc_get_last_track_num(MbDisc disc);
1244 
1250 MB_API MbDisc
1251 mb_read_disc(const char *device_name);
1252 
1258 MB_API void
1259 mb_get_submission_url(MbDisc disc, const char *host, int port, char *str, int len);
1260 
1261 /* }}} */
1262 
1263 /* {{{ Utils */
1264 
1270 MB_API void
1271 mb_extract_fragment(const char *uri, char *fragment, int len);
1272 
1278 MB_API void
1279 mb_extract_uuid(const char *uri, char *uuid, int len);
1280 
1281 /* }}} */
1282 
1283 #ifdef __cplusplus
1284 }
1285 #endif
1286 
1287 #endif