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