 |
Kodi Development
19.0
for Binary and Script based Add-Ons
|
|
11 #ifndef C_API_FILESYSTEM_H
12 #define C_API_FILESYSTEM_H
18 #ifdef _WIN32 // windows
19 #ifndef _SSIZE_T_DEFINED
20 typedef intptr_t ssize_t;
21 #define _SSIZE_T_DEFINED
22 #endif // !_SSIZE_T_DEFINED
25 #ifdef CreateDirectory
26 #undef CreateDirectory
27 #endif // CreateDirectory
31 #ifdef RemoveDirectory
32 #undef RemoveDirectory
33 #endif // RemoveDirectory
36 #ifdef TARGET_POSIX // Linux, Mac, FreeBSD
37 #include <sys/types.h>
38 #endif // TARGET_POSIX
110 typedef enum CURLOptiontype
113 ADDON_CURL_OPTION_OPTION,
135 ADDON_CURL_OPTION_PROTOCOL,
138 ADDON_CURL_OPTION_CREDENTIALS,
141 ADDON_CURL_OPTION_HEADER
155 typedef enum FilePropertyTypes
158 ADDON_FILE_PROPERTY_RESPONSE_PROTOCOL,
160 ADDON_FILE_PROPERTY_RESPONSE_HEADER,
162 ADDON_FILE_PROPERTY_CONTENT_TYPE,
164 ADDON_FILE_PROPERTY_CONTENT_CHARSET,
166 ADDON_FILE_PROPERTY_MIME_TYPE,
168 ADDON_FILE_PROPERTY_EFFECTIVE_URL
183 char* (*get_value)(
void* kodiBase,
void* handle,
const char* param);
184 char** (*get_values)(
void* kodiBase,
void* handle,
const char* param,
int* length);
185 char* (*get_header)(
void* kodiBase,
void* handle);
186 char* (*get_mime_type)(
void* kodiBase,
void* handle);
187 char* (*get_charset)(
void* kodiBase,
void* handle);
188 char* (*get_proto_line)(
void* kodiBase,
void* handle);
225 unsigned int maxrate;
226 unsigned int currate;
250 bool (*can_open_directory)(
void* kodiBase,
const char* url);
251 bool (*create_directory)(
void* kodiBase,
const char* path);
252 bool (*remove_directory)(
void* kodiBase,
const char* path);
253 bool (*directory_exists)(
void* kodiBase,
const char* path);
254 bool (*get_directory)(
void* kodiBase,
258 unsigned int* num_items);
259 void (*free_directory)(
void* kodiBase,
struct VFSDirEntry* items,
unsigned int num_items);
261 bool (*file_exists)(
void* kodiBase,
const char* filename,
bool useCache);
262 bool (*stat_file)(
void* kodiBase,
const char* filename,
struct STAT_STRUCTURE* buffer);
263 bool (*delete_file)(
void* kodiBase,
const char* filename);
264 bool (*rename_file)(
void* kodiBase,
const char* filename,
const char* newFileName);
265 bool (*copy_file)(
void* kodiBase,
const char* filename,
const char* dest);
267 char* (*get_file_md5)(
void* kodiBase,
const char* filename);
268 char* (*get_cache_thumb_name)(
void* kodiBase,
const char* filename);
269 char* (*make_legal_filename)(
void* kodiBase,
const char* filename);
270 char* (*make_legal_path)(
void* kodiBase,
const char* path);
271 char* (*translate_special_protocol)(
void* kodiBase,
const char* strSource);
272 bool (*is_internet_stream)(
void* kodiBase,
const char* path,
bool strictCheck);
273 bool (*is_on_lan)(
void* kodiBase,
const char* path);
274 bool (*is_remote)(
void* kodiBase,
const char* path);
275 bool (*is_local)(
void* kodiBase,
const char* path);
276 bool (*is_url)(
void* kodiBase,
const char* path);
277 bool (*get_http_header)(
void* kodiBase,
const char* url,
struct KODI_HTTP_HEADER* headers);
278 bool (*get_mime_type)(
void* kodiBase,
const char* url,
char** content,
const char* useragent);
279 bool (*get_content_type)(
void* kodiBase,
282 const char* useragent);
283 bool (*get_cookies)(
void* kodiBase,
const char* url,
char** cookies);
284 bool (*http_header_create)(
void* kodiBase,
struct KODI_HTTP_HEADER* headers);
287 void* (*open_file)(
void* kodiBase,
const char* filename,
unsigned int flags);
288 void* (*open_file_for_write)(
void* kodiBase,
const char* filename,
bool overwrite);
289 ssize_t (*read_file)(
void* kodiBase,
void* file,
void* ptr,
size_t size);
290 bool (*read_file_string)(
void* kodiBase,
void* file,
char* szLine,
int iLineLength);
291 ssize_t (*write_file)(
void* kodiBase,
void* file,
const void* ptr,
size_t size);
292 void (*flush_file)(
void* kodiBase,
void* file);
293 int64_t (*seek_file)(
void* kodiBase,
void* file, int64_t position,
int whence);
294 int (*truncate_file)(
void* kodiBase,
void* file, int64_t size);
295 int64_t (*get_file_position)(
void* kodiBase,
void* file);
296 int64_t (*get_file_length)(
void* kodiBase,
void* file);
297 double (*get_file_download_speed)(
void* kodiBase,
void* file);
298 void (*close_file)(
void* kodiBase,
void* file);
299 int (*get_file_chunk_size)(
void* kodiBase,
void* file);
300 bool (*io_control_get_seek_possible)(
void* kodiBase,
void* file);
301 bool (*io_control_get_cache_status)(
void* kodiBase,
304 bool (*io_control_set_cache_rate)(
void* kodiBase,
void* file,
unsigned int rate);
305 bool (*io_control_set_retry)(
void* kodiBase,
void* file,
bool retry);
306 char** (*get_property_values)(
307 void* kodiBase,
void* file,
int type,
const char* name,
int* numValues);
309 void* (*curl_create)(
void* kodiBase,
const char* url);
310 bool (*curl_add_option)(
311 void* kodiBase,
void* file,
int type,
const char* name,
const char* value);
312 bool (*curl_open)(
void* kodiBase,
void* file,
unsigned int flags);
314 bool (*get_disk_space)(
315 void* kodiBase,
const char* path, uint64_t* capacity, uint64_t* free, uint64_t* available);
316 bool (*remove_directory_recursive)(
void* kodiBase,
const char* path);
bool isFifo
The stat url is FIFO special.
Definition: filesystem.h:212
@ ADDON_READ_MULTI_STREAM
0000 0010 0000 : Indicate to the caller we will seek between multiple streams in the file frequently...
Definition: filesystem.h:85
@ ADDON_READ_AUDIO_VIDEO
0000 0100 0000 : indicate to the caller file is audio and/or video (and e.g. may grow).
Definition: filesystem.h:90
Definition: filesystem.h:180
char * title
item title
Definition: filesystem.h:239
@ ADDON_READ_CHUNKED
0000 0000 0010 : Indicate that that caller support read in the minimum defined chunk size,...
Definition: filesystem.h:68
Definition: filesystem.h:231
@ ADDON_READ_CACHED
0000 0000 0100 : Use cache to access this file.
Definition: filesystem.h:72
unsigned int num_props
Number of properties attached to item.
Definition: filesystem.h:241
uint64_t size
Total size, in bytes.
Definition: filesystem.h:196
@ ADDON_READ_AFTER_WRITE
0000 1000 0000 : Indicate that caller will do write operations before reading.
Definition: filesystem.h:94
bool isSymLink
The stat url is a symbolic link.
Definition: filesystem.h:206
uint64_t fileSerialNumber
Definition: filesystem.h:219
bool isDirectory
The stat url is a directory.
Definition: filesystem.h:204
uint64_t size
Size of file represented by item.
Definition: filesystem.h:245
bool isSocket
The stat url is socket.
Definition: filesystem.h:216
char * label
item label
Definition: filesystem.h:238
char * path
item path
Definition: filesystem.h:240
Definition: filesystem.h:249
@ ADDON_READ_TRUNCATED
0000 0000 0001 : Indicate that caller can handle truncated reads, where function returns before enti...
Definition: filesystem.h:63
@ ADDON_READ_BITRATE
0000 0001 0000 : Calcuate bitrate for file while reading.
Definition: filesystem.h:80
time_t date_time
file creation date & time
Definition: filesystem.h:243
time_t statusTime
Time of last status change.
Definition: filesystem.h:202
time_t accessTime
Time of last access.
Definition: filesystem.h:198
bool isBlock
The stat url is block special.
Definition: filesystem.h:208
time_t modificationTime
Time of last modification.
Definition: filesystem.h:200
struct VFSProperty * properties
Properties.
Definition: filesystem.h:242
@ ADDON_READ_REOPEN
0001 0000 0000 : Indicate that caller want to reopen a file if its already open.
Definition: filesystem.h:98
OpenFileFlags
Definition: filesystem.h:59
bool isRegular
The stat url is regular.
Definition: filesystem.h:214
@ ADDON_READ_NO_CACHE
0000 0000 1000 : Open without caching. regardless to file type.
Definition: filesystem.h:76
bool isCharacter
The stat url is character special.
Definition: filesystem.h:210
uint32_t deviceId
ID of device containing file.
Definition: filesystem.h:194
Definition: filesystem.h:223
bool folder
Item is a folder.
Definition: filesystem.h:244
Definition: filesystem.h:237
Definition: filesystem.h:192