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 {
98} resource_media_type_t;
100typedef enum resource_actions {
120 resource_type_t type;
121 resource_status_t status;
122 resource_actions_t actions;
134 void *whereToPlaceData;
135 int offsetFromWhereToPlaceData;
168 char *afterPoundCharacters;
184 char *parsed_request;
197 char four_first_bytes[4];
199 resource_media_type_t media_type;
201 pthread_t *_loadThread;
203 int (*_loadFunc)(
void *);
208extern resource_item_t *root_res;
210bool resource_init_base(resource_item_t *root_res);
212resource_item_t* resource_create_single(
const char *request);
216resource_item_t* resource_create_multi(
const s_Multi_String_t *request);
217resource_item_t* resource_create_multi0(
const s_Multi_String_t *request);
219resource_item_t* resource_create_from_string(
const char *
string);
221void push_resource_request(
const char *request);
222void resource_identify(resource_item_t *base, resource_item_t *resresource_identify);
223bool resource_fetch(
void *res);
225void resitem_enqueue(s_list_t *resitem);
226bool resource_load(resource_item_t *res);
227void resource_identify_type(resource_item_t *res);
228void resource_destroy(resource_item_t *res);
229void destroy_root_res();
231void resource_remove_child(resource_item_t *parent, resource_item_t *child);
233void send_resource_to_parser(resource_item_t *res);
234void send_resource_to_parser_async(resource_item_t *res);
236bool send_resource_to_parser_if_available(resource_item_t *res);
238void fwl_resitem_setStatus(
void *resp,
int status);
240void resource_push_multi_request(
struct Multi_String *request);
241void resource_wait(resource_item_t *res);
243void resource_get_valid_url_from_multi(resource_item_t *parentPath, resource_item_t *res);
245void resource_dump(resource_item_t *res);
246void resource_tree_dump(
int level, resource_item_t *root);
247void resource_tree_list_files(
int level, resource_item_t *root);
248void resource_tree_destroy();
250char *resourceStatusToString(
int status);
251char *resourceTypeToString(
int type);
252char *resourceMediaTypeToString(
int type);
255extern bool resource_is_root_loaded();
256void frontenditem_enqueue(s_list_t *item);
258void popInputResource();
259void pushInputResource(resource_item_t *url);
260resource_item_t *getInputResource();
262bool imagery_load(resource_item_t *res);
263bool movie_load(resource_item_t *res);