27#ifndef __LIBFREEWRL_RESOURCES_H__
28#define __LIBFREEWRL_RESOURCES_H__
37#include <system_threads.h>
40#if defined(_ANDROID) || defined(ANDROIDNDK)
41#include <system_threads.h>
46#define IF_cleanedURL_IS_ABSOLUTE if(strchr(cleanedURL,':'))
50#define IF_cleanedURL_IS_ABSOLUTE \
51 DEBUG_RES("resource_identify = we have base cleanedurl = %s\n", cleanedURL); \
52 if (cleanedURL[0] == '/')
55typedef enum resource_type {
63typedef enum resource_status {
75typedef enum resource_media_type {
87} resource_media_type_t;
89typedef enum resource_actions {
109 resource_type_t type;
110 resource_status_t status;
111 resource_actions_t actions;
123 void *whereToPlaceData;
124 int offsetFromWhereToPlaceData;
157 char *afterPoundCharacters;
173 char *parsed_request;
186 char four_first_bytes[4];
188 resource_media_type_t media_type;
190 pthread_t *_loadThread;
192 int (*_loadFunc)(
void *);
195extern resource_item_t *root_res;
197bool resource_init_base(resource_item_t *root_res);
199resource_item_t* resource_create_single(
const char *request);
203resource_item_t* resource_create_multi(
const s_Multi_String_t *request);
204resource_item_t* resource_create_multi0(
const s_Multi_String_t *request);
206resource_item_t* resource_create_from_string(
const char *
string);
208void push_resource_request(
const char *request);
209void resource_identify(resource_item_t *base, resource_item_t *resresource_identify);
210bool resource_fetch(
void *res);
212void resitem_enqueue(s_list_t *resitem);
213bool resource_load(resource_item_t *res);
214void resource_identify_type(resource_item_t *res);
215void resource_destroy(resource_item_t *res);
216void destroy_root_res();
218void resource_remove_child(resource_item_t *parent, resource_item_t *child);
220void send_resource_to_parser(resource_item_t *res);
221void send_resource_to_parser_async(resource_item_t *res);
223bool send_resource_to_parser_if_available(resource_item_t *res);
225void fwl_resitem_setStatus(
void *resp,
int status);
227void resource_push_multi_request(
struct Multi_String *request);
228void resource_wait(resource_item_t *res);
230void resource_get_valid_url_from_multi(resource_item_t *parentPath, resource_item_t *res);
232void resource_dump(resource_item_t *res);
233void resource_tree_dump(
int level, resource_item_t *root);
234void resource_tree_list_files(
int level, resource_item_t *root);
235void resource_tree_destroy();
237char *resourceStatusToString(
int status);
238char *resourceTypeToString(
int type);
239char *resourceMediaTypeToString(
int type);
242extern bool resource_is_root_loaded();
243void frontenditem_enqueue(s_list_t *item);
245void popInputResource();
246void pushInputResource(resource_item_t *url);
247resource_item_t *getInputResource();
249bool imagery_load(resource_item_t *res);
250bool movie_load(resource_item_t *res);