1 /* libquvi 2 * Copyright (C) 2012-2013 Toni Gundogdu <legatvs@gmail.com> 3 * 4 * This file is part of libquvi <http://quvi.sourceforge.net/>. 5 * 6 * This library is free software: you can redistribute it and/or 7 * modify it under the terms of the GNU Affero General Public 8 * License as published by the Free Software Foundation, either 9 * version 3 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 14 * GNU Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General 17 * Public License along with this library. If not, see 18 * <http://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef qfunc_h 22 #define qfunc_h 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 quvi_t quvi_new(void); 29 void quvi_free(quvi_t); 30 31 void quvi_set(quvi_t, QuviOption, ...); 32 void quvi_get(quvi_t, QuviInfo, ...); 33 34 /* Script */ 35 36 QuviBoolean quvi_script_next(quvi_t, QuviScriptType); 37 void quvi_script_get(quvi_t, QuviScriptType, QuviScriptProperty, ...); 38 39 /* Media */ 40 41 quvi_media_t quvi_media_new(quvi_t, const char*); 42 void quvi_media_free(quvi_media_t); 43 44 void quvi_media_get(quvi_media_t, QuviMediaProperty, ...); 45 46 QuviBoolean quvi_media_stream_next(quvi_media_t); 47 void quvi_media_stream_reset(quvi_media_t); 48 49 void quvi_media_stream_select(quvi_media_t, const char*); 50 void quvi_media_stream_choose_best(quvi_media_t); 51 52 /* Playlist */ 53 54 quvi_playlist_t quvi_playlist_new(quvi_t, const char*); 55 void quvi_playlist_free(quvi_playlist_t); 56 57 void quvi_playlist_get(quvi_playlist_t, QuviPlaylistProperty, ...); 58 59 QuviBoolean quvi_playlist_media_next(quvi_playlist_t); 60 void quvi_playlist_media_reset(quvi_playlist_t); 61 62 /* Scan */ 63 64 quvi_scan_t quvi_scan_new(quvi_t, const char*); 65 void quvi_scan_free(quvi_scan_t); 66 67 const char *quvi_scan_next_media_url(quvi_scan_t); 68 69 /* Resolve */ 70 71 quvi_resolve_t quvi_resolve_new(quvi_t, const char*); 72 void quvi_resolve_free(quvi_resolve_t); 73 74 QuviBoolean quvi_resolve_forwarded(quvi_resolve_t); 75 const char *quvi_resolve_destination_url(quvi_resolve_t); 76 77 /* HTTP meta-info */ 78 79 quvi_http_metainfo_t quvi_http_metainfo_new(quvi_t, const char*); 80 void quvi_http_metainfo_free(quvi_http_metainfo_t); 81 82 void quvi_http_metainfo_get(quvi_http_metainfo_t, 83 QuviHTTPMetaInfoProperty, ...); 84 85 /* Subtitle */ 86 87 quvi_subtitle_t quvi_subtitle_new(quvi_t, const char*); 88 void quvi_subtitle_free(quvi_subtitle_t); 89 90 const quvi_subtitle_type_t quvi_subtitle_type_next(quvi_subtitle_t); 91 const quvi_subtitle_lang_t quvi_subtitle_lang_next(quvi_subtitle_type_t); 92 93 void quvi_subtitle_type_get(quvi_subtitle_type_t, 94 QuviSubtitleTypeProperty, ...); 95 96 void quvi_subtitle_lang_get(quvi_subtitle_lang_t, 97 QuviSubtitleLangProperty, ...); 98 99 void quvi_subtitle_type_reset(quvi_subtitle_t); 100 void quvi_subtitle_lang_reset(quvi_subtitle_type_t); 101 102 const quvi_subtitle_lang_t quvi_subtitle_select(quvi_subtitle_t, const char*); 103 104 /* Subtitle - export */ 105 106 quvi_subtitle_export_t quvi_subtitle_export_new(quvi_subtitle_lang_t, char*); 107 void quvi_subtitle_export_free(quvi_subtitle_export_t); 108 109 const char *quvi_subtitle_export_data(quvi_subtitle_export_t); 110 111 /* Convenience - file extension */ 112 113 quvi_file_ext_t quvi_file_ext_new(quvi_t, const char*); 114 void quvi_file_ext_free(quvi_file_ext_t); 115 116 const char *quvi_file_ext_get(quvi_file_ext_t); 117 118 /* Convenience */ 119 120 QuviBoolean quvi_supports(quvi_t, const char*, 121 QuviSupportsMode, QuviSupportsType); 122 123 const char *quvi_version(QuviVersion); 124 125 const char *quvi_errmsg(quvi_t); 126 QuviError quvi_errcode(quvi_t); 127 QuviBoolean quvi_ok(quvi_t); 128 129 #ifdef __cplusplus 130 } 131 #endif /* __cplusplus */ 132 133 #endif /* qfunc_h */ 134 135 /* vim: set ts=2 sw=2 tw=72 expandtab: */ 136