9#ifndef C_API_FILESYSTEM_H
10#define C_API_FILESYSTEM_H
17#ifndef _SSIZE_T_DEFINED
18typedef intptr_t ssize_t;
19#define _SSIZE_T_DEFINED
189 char* (*get_value)(
void* kodiBase,
void* handle,
const char* param);
190 char** (*get_values)(
void* kodiBase,
void* handle,
const char* param,
int* length);
191 char* (*get_header)(
void* kodiBase,
void* handle);
192 char* (*get_mime_type)(
void* kodiBase,
void* handle);
193 char* (*get_charset)(
void* kodiBase,
void* handle);
194 char* (*get_proto_line)(
void* kodiBase,
void* handle);
256 bool (*can_open_directory)(
void* kodiBase,
const char* url);
257 bool (*create_directory)(
void* kodiBase,
const char* path);
258 bool (*remove_directory)(
void* kodiBase,
const char* path);
259 bool (*directory_exists)(
void* kodiBase,
const char* path);
260 bool (*get_directory)(
void* kodiBase,
264 unsigned int* num_items);
265 void (*free_directory)(
void* kodiBase,
struct VFSDirEntry* items,
unsigned int num_items);
267 bool (*file_exists)(
void* kodiBase,
const char* filename,
bool useCache);
268 bool (*stat_file)(
void* kodiBase,
const char* filename,
struct STAT_STRUCTURE* buffer);
269 bool (*delete_file)(
void* kodiBase,
const char* filename);
270 bool (*rename_file)(
void* kodiBase,
const char* filename,
const char* newFileName);
271 bool (*copy_file)(
void* kodiBase,
const char* filename,
const char* dest);
273 char* (*get_file_md5)(
void* kodiBase,
const char* filename);
274 char* (*get_cache_thumb_name)(
void* kodiBase,
const char* filename);
275 char* (*make_legal_filename)(
void* kodiBase,
const char* filename);
276 char* (*make_legal_path)(
void* kodiBase,
const char* path);
277 char* (*translate_special_protocol)(
void* kodiBase,
const char* strSource);
278 bool (*is_internet_stream)(
void* kodiBase,
const char* path,
bool strictCheck);
279 bool (*is_on_lan)(
void* kodiBase,
const char* path);
280 bool (*is_remote)(
void* kodiBase,
const char* path);
281 bool (*is_local)(
void* kodiBase,
const char* path);
282 bool (*is_url)(
void* kodiBase,
const char* path);
283 bool (*get_http_header)(
void* kodiBase,
const char* url,
struct KODI_HTTP_HEADER* headers);
284 bool (*get_mime_type)(
void* kodiBase,
const char* url,
char** content,
const char* useragent);
285 bool (*get_content_type)(
void* kodiBase,
288 const char* useragent);
289 bool (*get_cookies)(
void* kodiBase,
const char* url,
char** cookies);
290 bool (*http_header_create)(
void* kodiBase,
struct KODI_HTTP_HEADER* headers);
293 void* (*open_file)(
void* kodiBase,
const char* filename,
unsigned int flags);
294 void* (*open_file_for_write)(
void* kodiBase,
const char* filename,
bool overwrite);
295 ssize_t (*read_file)(
void* kodiBase,
void* file,
void* ptr,
size_t size);
296 bool (*read_file_string)(
void* kodiBase,
void* file,
char* szLine,
int iLineLength);
297 ssize_t (*write_file)(
void* kodiBase,
void* file,
const void* ptr,
size_t size);
298 void (*flush_file)(
void* kodiBase,
void* file);
299 int64_t (*seek_file)(
void* kodiBase,
void* file, int64_t position,
int whence);
300 int (*truncate_file)(
void* kodiBase,
void* file, int64_t size);
301 int64_t (*get_file_position)(
void* kodiBase,
void* file);
302 int64_t (*get_file_length)(
void* kodiBase,
void* file);
303 double (*get_file_download_speed)(
void* kodiBase,
void* file);
304 void (*close_file)(
void* kodiBase,
void* file);
305 int (*get_file_chunk_size)(
void* kodiBase,
void* file);
306 bool (*io_control_get_seek_possible)(
void* kodiBase,
void* file);
307 bool (*io_control_get_cache_status)(
void* kodiBase,
310 bool (*io_control_set_cache_rate)(
void* kodiBase,
void* file, uint32_t rate);
311 bool (*io_control_set_retry)(
void* kodiBase,
void* file,
bool retry);
312 char** (*get_property_values)(
313 void* kodiBase,
void* file,
int type,
const char* name,
int* numValues);
315 void* (*curl_create)(
void* kodiBase,
const char* url);
316 bool (*curl_add_option)(
317 void* kodiBase,
void* file,
int type,
const char* name,
const char* value);
318 bool (*curl_open)(
void* kodiBase,
void* file,
unsigned int flags);
320 bool (*get_disk_space)(
321 void* kodiBase,
const char* path, uint64_t* capacity, uint64_t* free, uint64_t* available);
322 bool (*remove_directory_recursive)(
void* kodiBase,
const char* path);
CURLOptiontype
Definition filesystem.h:117
@ ADDON_CURL_OPTION_PROTOCOL
Set a protocol option. .
Definition filesystem.h:141
@ ADDON_CURL_OPTION_OPTION
Set a general option.
Definition filesystem.h:119
@ ADDON_CURL_OPTION_HEADER
Add a Header.
Definition filesystem.h:147
@ ADDON_CURL_OPTION_CREDENTIALS
Set User and password.
Definition filesystem.h:144
FilePropertyTypes
Definition filesystem.h:162
@ ADDON_FILE_PROPERTY_CONTENT_TYPE
Get file content type.
Definition filesystem.h:168
@ ADDON_FILE_PROPERTY_EFFECTIVE_URL
Get file effective URL (last one if redirected).
Definition filesystem.h:174
@ ADDON_FILE_PROPERTY_CONTENT_CHARSET
Get file content charset.
Definition filesystem.h:170
@ ADDON_FILE_PROPERTY_MIME_TYPE
Get file mime type.
Definition filesystem.h:172
@ ADDON_FILE_PROPERTY_RESPONSE_HEADER
Get a response header.
Definition filesystem.h:166
@ ADDON_FILE_PROPERTY_RESPONSE_PROTOCOL
Get protocol response line.
Definition filesystem.h:164
OpenFileFlags
Definition filesystem.h:57
@ ADDON_READ_CACHED
0000 0000 0100 : Use cache to access this file.
Definition filesystem.h:73
@ ADDON_READ_NO_CACHE
0000 0000 1000 : Open without caching. regardless to file type.
Definition filesystem.h:77
@ ADDON_READ_NO_BUFFER
0010 0000 0000 : Indicate that caller want open a file without intermediate buffer regardless to file...
Definition filesystem.h:104
@ ADDON_READ_AUDIO_VIDEO
0000 0100 0000 : Indicate to the caller file is audio and/or video and is suitable for caching with F...
Definition filesystem.h:92
@ ADDON_READ_REOPEN
0001 0000 0000 : Indicate that caller want to reopen a file if its already open.
Definition filesystem.h:100
@ ADDON_READ_AFTER_WRITE
0000 1000 0000 : Indicate that caller will do write operations before reading.
Definition filesystem.h:96
@ ADDON_READ_TRUNCATED
0000 0000 0001 : Indicate that caller can handle truncated reads, where function returns before entir...
Definition filesystem.h:61
@ ADDON_READ_CHUNKED
0000 0000 0010 : Indicate that that caller support read in the minimum defined chunk size,...
Definition filesystem.h:69
@ ADDON_READ_MULTI_STREAM
0000 0010 0000 : Indicate to the caller we will seek between multiple streams in the file frequently.
Definition filesystem.h:86
@ ADDON_READ_BITRATE
0000 0001 0000 : Calculate bitrate for file while reading.
Definition filesystem.h:81
Definition filesystem.h:255
Definition filesystem.h:186
Definition filesystem.h:198
bool isRegular
The stat url is regular.
Definition filesystem.h:220
uint32_t deviceId
ID of device containing file.
Definition filesystem.h:200
uint64_t fileSerialNumber
Definition filesystem.h:225
bool isBlock
The stat url is block special.
Definition filesystem.h:214
bool isDirectory
The stat url is a directory.
Definition filesystem.h:210
time_t accessTime
Time of last access.
Definition filesystem.h:204
bool isSymLink
The stat url is a symbolic link.
Definition filesystem.h:212
bool isFifo
The stat url is FIFO special.
Definition filesystem.h:218
bool isSocket
The stat url is socket.
Definition filesystem.h:222
time_t statusTime
Time of last status change.
Definition filesystem.h:208
bool isCharacter
The stat url is character special.
Definition filesystem.h:216
time_t modificationTime
Time of last modification.
Definition filesystem.h:206
uint64_t size
Total size, in bytes.
Definition filesystem.h:202
Definition filesystem.h:229
Definition filesystem.h:243
struct VFSProperty * properties
Properties.
Definition filesystem.h:248
char * path
item path
Definition filesystem.h:246
time_t date_time
file creation date & time
Definition filesystem.h:249
unsigned int num_props
Number of properties attached to item.
Definition filesystem.h:247
bool folder
Item is a folder.
Definition filesystem.h:250
char * label
item label
Definition filesystem.h:244
char * title
item title
Definition filesystem.h:245
uint64_t size
Size of file represented by item.
Definition filesystem.h:251
Definition filesystem.h:237