add task_push_http_transfer_file
This commit is contained in:
parent
38b486eb6b
commit
7325147d83
|
@ -149,7 +149,7 @@ static bool discord_download_avatar(
|
||||||
strlcpy(transf->path, buf, sizeof(transf->path));
|
strlcpy(transf->path, buf, sizeof(transf->path));
|
||||||
|
|
||||||
RARCH_LOG("[discord] downloading avatar from: %s\n", url_encoded);
|
RARCH_LOG("[discord] downloading avatar from: %s\n", url_encoded);
|
||||||
task_push_http_transfer(url_encoded, true, NULL, cb_generic_download, transf);
|
task_push_http_transfer_file(url_encoded, true, NULL, cb_generic_download, transf);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3991,7 +3991,7 @@ static int generic_action_ok_network(const char *path,
|
||||||
strlcpy(transf->path, url_path, sizeof(transf->path));
|
strlcpy(transf->path, url_path, sizeof(transf->path));
|
||||||
|
|
||||||
net_http_urlencode_full(url_path_encoded, url_path, sizeof(url_path_encoded));
|
net_http_urlencode_full(url_path_encoded, url_path, sizeof(url_path_encoded));
|
||||||
task_push_http_transfer(url_path_encoded, suppress_msg, url_label, callback, transf);
|
task_push_http_transfer_file(url_path_encoded, suppress_msg, url_label, callback, transf);
|
||||||
|
|
||||||
return generic_action_ok_displaylist_push(path, NULL,
|
return generic_action_ok_displaylist_push(path, NULL,
|
||||||
label, type, idx, entry_idx, type_id2);
|
label, type, idx, entry_idx, type_id2);
|
||||||
|
@ -4293,7 +4293,7 @@ static int action_ok_download_generic(const char *path,
|
||||||
else
|
else
|
||||||
net_http_urlencode_full(s3, s2, sizeof(s3));
|
net_http_urlencode_full(s3, s2, sizeof(s3));
|
||||||
|
|
||||||
task_push_http_transfer(s3, suppress_msg, msg_hash_to_str(enum_idx), cb, transf);
|
task_push_http_transfer_file(s3, suppress_msg, msg_hash_to_str(enum_idx), cb, transf);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -241,7 +241,7 @@ finish:
|
||||||
strlcpy(transf->path, parent_dir, sizeof(transf->path));
|
strlcpy(transf->path, parent_dir, sizeof(transf->path));
|
||||||
|
|
||||||
net_http_urlencode_full(parent_dir_encoded, parent_dir, PATH_MAX_LENGTH * sizeof(char));
|
net_http_urlencode_full(parent_dir_encoded, parent_dir, PATH_MAX_LENGTH * sizeof(char));
|
||||||
task_push_http_transfer(parent_dir_encoded, true,
|
task_push_http_transfer_file(parent_dir_encoded, true,
|
||||||
"index_dirs", cb_net_generic_subdir, transf);
|
"index_dirs", cb_net_generic_subdir, transf);
|
||||||
|
|
||||||
free(parent_dir);
|
free(parent_dir);
|
||||||
|
|
|
@ -260,7 +260,7 @@ static void task_core_updater_get_list_handler(retro_task_t *task)
|
||||||
transf->user_data = (void*)list_handle;
|
transf->user_data = (void*)list_handle;
|
||||||
|
|
||||||
/* Push HTTP transfer task */
|
/* Push HTTP transfer task */
|
||||||
list_handle->http_task = (retro_task_t*)task_push_http_transfer(
|
list_handle->http_task = (retro_task_t*)task_push_http_transfer_file(
|
||||||
buildbot_url, true, NULL,
|
buildbot_url, true, NULL,
|
||||||
cb_http_task_core_updater_get_list, transf);
|
cb_http_task_core_updater_get_list, transf);
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ static void task_core_updater_get_list_handler(retro_task_t *task)
|
||||||
task, task_get_progress(list_handle->http_task));
|
task, task_get_progress(list_handle->http_task));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Wait for task_push_http_transfer()
|
/* Wait for task_push_http_transfer_file()
|
||||||
* callback to trigger */
|
* callback to trigger */
|
||||||
if (list_handle->http_task_complete)
|
if (list_handle->http_task_complete)
|
||||||
list_handle->status = CORE_UPDATER_LIST_END;
|
list_handle->status = CORE_UPDATER_LIST_END;
|
||||||
|
@ -626,7 +626,7 @@ static void task_core_updater_download_handler(retro_task_t *task)
|
||||||
transf->user_data = (void*)download_handle;
|
transf->user_data = (void*)download_handle;
|
||||||
|
|
||||||
/* Push HTTP transfer task */
|
/* Push HTTP transfer task */
|
||||||
download_handle->http_task = (retro_task_t*)task_push_http_transfer(
|
download_handle->http_task = (retro_task_t*)task_push_http_transfer_file(
|
||||||
download_handle->remote_core_path, true, NULL,
|
download_handle->remote_core_path, true, NULL,
|
||||||
cb_http_task_core_updater_download, transf);
|
cb_http_task_core_updater_download, transf);
|
||||||
|
|
||||||
|
@ -673,7 +673,7 @@ static void task_core_updater_download_handler(retro_task_t *task)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Wait for task_push_http_transfer()
|
/* Wait for task_push_http_transfer_file()
|
||||||
* callback to trigger */
|
* callback to trigger */
|
||||||
if (download_handle->http_task_complete)
|
if (download_handle->http_task_complete)
|
||||||
download_handle->status = CORE_UPDATER_DOWNLOAD_WAIT_DECOMPRESS;
|
download_handle->status = CORE_UPDATER_DOWNLOAD_WAIT_DECOMPRESS;
|
||||||
|
|
|
@ -77,6 +77,9 @@ typedef struct
|
||||||
void *user_data;
|
void *user_data;
|
||||||
} file_transfer_t;
|
} file_transfer_t;
|
||||||
|
|
||||||
|
void* task_push_http_transfer_file(const char* url, bool mute, const char* type,
|
||||||
|
retro_task_callback_t cb, file_transfer_t* transfer_data);
|
||||||
|
|
||||||
RETRO_END_DECLS
|
RETRO_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -250,13 +250,9 @@ static void* task_push_http_transfer_generic(
|
||||||
retro_task_callback_t cb, void *user_data)
|
retro_task_callback_t cb, void *user_data)
|
||||||
{
|
{
|
||||||
task_finder_data_t find_data;
|
task_finder_data_t find_data;
|
||||||
char tmp[255];
|
|
||||||
const char *s = NULL;
|
|
||||||
retro_task_t *t = NULL;
|
retro_task_t *t = NULL;
|
||||||
http_handle_t *http = NULL;
|
http_handle_t *http = NULL;
|
||||||
|
|
||||||
tmp[0] = '\0';
|
|
||||||
|
|
||||||
find_data.func = task_http_finder;
|
find_data.func = task_http_finder;
|
||||||
find_data.userdata = (void*)url;
|
find_data.userdata = (void*)url;
|
||||||
|
|
||||||
|
@ -299,22 +295,6 @@ static void* task_push_http_transfer_generic(
|
||||||
t->user_data = user_data;
|
t->user_data = user_data;
|
||||||
t->progress = -1;
|
t->progress = -1;
|
||||||
|
|
||||||
if (user_data)
|
|
||||||
s = ((file_transfer_t*)user_data)->path;
|
|
||||||
else
|
|
||||||
s = url;
|
|
||||||
|
|
||||||
strlcpy(tmp,
|
|
||||||
msg_hash_to_str(MSG_DOWNLOADING), sizeof(tmp));
|
|
||||||
strlcat(tmp, " ", sizeof(tmp));
|
|
||||||
|
|
||||||
if (strstr(s, ".index"))
|
|
||||||
strlcat(tmp, msg_hash_to_str(MSG_INDEX_FILE), sizeof(tmp));
|
|
||||||
else
|
|
||||||
strlcat(tmp, s, sizeof(tmp));
|
|
||||||
|
|
||||||
t->title = strdup(tmp);
|
|
||||||
|
|
||||||
task_queue_push(t);
|
task_queue_push(t);
|
||||||
|
|
||||||
return t;
|
return t;
|
||||||
|
@ -334,11 +314,47 @@ void* task_push_http_transfer(const char *url, bool mute,
|
||||||
{
|
{
|
||||||
if (string_is_empty(url))
|
if (string_is_empty(url))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return task_push_http_transfer_generic(
|
return task_push_http_transfer_generic(
|
||||||
net_http_connection_new(url, "GET", NULL),
|
net_http_connection_new(url, "GET", NULL),
|
||||||
url, mute, type, cb, user_data);
|
url, mute, type, cb, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void* task_push_http_transfer_file(const char* url, bool mute,
|
||||||
|
const char* type,
|
||||||
|
retro_task_callback_t cb, file_transfer_t* transfer_data)
|
||||||
|
{
|
||||||
|
const char *s = NULL;
|
||||||
|
char tmp[255] = "";
|
||||||
|
retro_task_t *t = NULL;
|
||||||
|
|
||||||
|
if (string_is_empty(url))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
t = task_push_http_transfer_generic(
|
||||||
|
net_http_connection_new(url, "GET", NULL),
|
||||||
|
url, mute, type, cb, transfer_data);
|
||||||
|
|
||||||
|
if (!t)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (transfer_data)
|
||||||
|
s = transfer_data->path;
|
||||||
|
else
|
||||||
|
s = url;
|
||||||
|
|
||||||
|
strlcpy(tmp, msg_hash_to_str(MSG_DOWNLOADING), sizeof(tmp));
|
||||||
|
strlcat(tmp, " ", sizeof(tmp));
|
||||||
|
|
||||||
|
if (strstr(s, ".index"))
|
||||||
|
strlcat(tmp, msg_hash_to_str(MSG_INDEX_FILE), sizeof(tmp));
|
||||||
|
else
|
||||||
|
strlcat(tmp, s, sizeof(tmp));
|
||||||
|
|
||||||
|
t->title = strdup(tmp);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
void* task_push_http_transfer_with_user_agent(const char *url, bool mute,
|
void* task_push_http_transfer_with_user_agent(const char *url, bool mute,
|
||||||
const char *type, const char* user_agent,
|
const char *type, const char* user_agent,
|
||||||
retro_task_callback_t cb, void *user_data)
|
retro_task_callback_t cb, void *user_data)
|
||||||
|
|
|
@ -269,7 +269,7 @@ static void download_pl_thumbnail(pl_thumb_handle_t *pl_thumb)
|
||||||
/* Note: We don't actually care if this fails since that
|
/* Note: We don't actually care if this fails since that
|
||||||
* just means the file is missing from the server, so it's
|
* just means the file is missing from the server, so it's
|
||||||
* not something we can handle here... */
|
* not something we can handle here... */
|
||||||
pl_thumb->http_task = (retro_task_t*)task_push_http_transfer(
|
pl_thumb->http_task = (retro_task_t*)task_push_http_transfer_file(
|
||||||
url, true, NULL, cb_http_task_download_pl_thumbnail, transf);
|
url, true, NULL, cb_http_task_download_pl_thumbnail, transf);
|
||||||
|
|
||||||
/* ...if it does fail, however, we can immediately
|
/* ...if it does fail, however, we can immediately
|
||||||
|
@ -411,7 +411,7 @@ static void task_pl_thumbnail_download_handler(retro_task_t *task)
|
||||||
if (!pl_thumb->http_task)
|
if (!pl_thumb->http_task)
|
||||||
pl_thumb->http_task_complete = true;
|
pl_thumb->http_task_complete = true;
|
||||||
|
|
||||||
/* > Wait for task_push_http_transfer()
|
/* > Wait for task_push_http_transfer_file()
|
||||||
* callback to trigger */
|
* callback to trigger */
|
||||||
if (pl_thumb->http_task_complete)
|
if (pl_thumb->http_task_complete)
|
||||||
pl_thumb->http_task = NULL;
|
pl_thumb->http_task = NULL;
|
||||||
|
@ -726,7 +726,7 @@ static void task_pl_entry_thumbnail_download_handler(retro_task_t *task)
|
||||||
if (!pl_thumb->http_task)
|
if (!pl_thumb->http_task)
|
||||||
pl_thumb->http_task_complete = true;
|
pl_thumb->http_task_complete = true;
|
||||||
|
|
||||||
/* > Wait for task_push_http_transfer()
|
/* > Wait for task_push_http_transfer_file()
|
||||||
* callback to trigger */
|
* callback to trigger */
|
||||||
if (pl_thumb->http_task_complete)
|
if (pl_thumb->http_task_complete)
|
||||||
pl_thumb->http_task = NULL;
|
pl_thumb->http_task = NULL;
|
||||||
|
|
Loading…
Reference in New Issue