From a797324133d04067bcd237e94c5c358d3e405eff Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Tue, 30 Apr 2019 10:01:07 +0200 Subject: [PATCH] Revert "task_database: use regular progress report" --- libretro-common/include/queues/task_queue.h | 7 +-- menu/widgets/menu_widgets.c | 57 +++++++++------------ tasks/task_database.c | 34 +++++------- tasks/task_decompress.c | 2 +- 4 files changed, 40 insertions(+), 60 deletions(-) diff --git a/libretro-common/include/queues/task_queue.h b/libretro-common/include/queues/task_queue.h index 1f2da7b659ae..aaed4ea30e24 100644 --- a/libretro-common/include/queues/task_queue.h +++ b/libretro-common/include/queues/task_queue.h @@ -114,15 +114,10 @@ struct retro_task /* task identifier */ uint32_t ident; - /* frontend userdata + /* frontend userdata * (e.g. associate a sticky notification to a task) */ void *frontend_userdata; - /* if set to true, frontend will - use an alternative look for the - task progress display */ - bool alternative_look; - /* don't touch this. */ retro_task_t *next; }; diff --git a/menu/widgets/menu_widgets.c b/menu/widgets/menu_widgets.c index 4289d08ba21e..8c096347ec8b 100644 --- a/menu/widgets/menu_widgets.c +++ b/menu/widgets/menu_widgets.c @@ -158,7 +158,6 @@ typedef struct menu_widget_msg uint8_t task_count; /* how many tasks have used this notification? */ int8_t task_progress; - bool task_alternative_look; bool task_finished; bool task_error; bool task_cancelled; @@ -381,25 +380,24 @@ static bool menu_widgets_msg_queue_push_internal(retro_task_t *task, const char if (task) { - msg_widget->msg = strdup(title); - msg_widget->msg_len = strlen(title); - - msg_widget->task_error = task->error; - msg_widget->task_cancelled = task->cancelled; - msg_widget->task_finished = task->finished; - msg_widget->task_alternative_look = task->alternative_look; - msg_widget->task_progress = task->progress; - msg_widget->task_ident = task->ident; - msg_widget->task_title_ptr = task->title; - msg_widget->task_count = 1; + msg_widget->msg = strdup(title); + msg_widget->msg_len = strlen(title); - msg_widget->unfolded = true; + msg_widget->task_error = task->error; + msg_widget->task_cancelled = task->cancelled; + msg_widget->task_finished = task->finished; + msg_widget->task_progress = task->progress; + msg_widget->task_ident = task->ident; + msg_widget->task_title_ptr = task->title; + msg_widget->task_count = 1; + + msg_widget->unfolded = true; - msg_widget->width = font_driver_get_message_width(font_regular, title, msg_widget->msg_len, msg_queue_text_scale_factor) + simple_widget_padding/2; + msg_widget->width = font_driver_get_message_width(font_regular, title, msg_widget->msg_len, msg_queue_text_scale_factor) + simple_widget_padding/2; - task->frontend_userdata = msg_widget; + task->frontend_userdata = msg_widget; - msg_widget->hourglass_rotation = 0; + msg_widget->hourglass_rotation = 0; } else { @@ -450,6 +448,7 @@ static bool menu_widgets_msg_queue_push_internal(retro_task_t *task, const char if (task->title != msg_widget->task_title_ptr) { + menu_animation_ctx_entry_t entry; unsigned len = strlen(task->title); unsigned new_width = font_driver_get_message_width(font_regular, task->title, len, msg_queue_text_scale_factor); @@ -461,23 +460,15 @@ static bool menu_widgets_msg_queue_push_internal(retro_task_t *task, const char msg_widget->task_title_ptr = task->title; msg_widget->msg_transition_animation = 0; - if (!task->alternative_look) - { - menu_animation_ctx_entry_t entry; - entry.easing_enum = EASING_OUT_QUAD; - entry.tag = (uintptr_t) NULL; - entry.duration = MSG_QUEUE_ANIMATION_DURATION*2; - entry.target_value = msg_queue_height/2.0f; - entry.subject = &msg_widget->msg_transition_animation; - entry.cb = msg_widget_msg_transition_animation_done; - entry.userdata = msg_widget; - - menu_animation_push(&entry); - } - else - { - msg_widget_msg_transition_animation_done(msg_widget); - } + entry.easing_enum = EASING_OUT_QUAD; + entry.tag = (uintptr_t) NULL; + entry.duration = MSG_QUEUE_ANIMATION_DURATION*2; + entry.target_value = msg_queue_height/2.0f; + entry.subject = &msg_widget->msg_transition_animation; + entry.cb = msg_widget_msg_transition_animation_done; + entry.userdata = msg_widget; + + menu_animation_push(&entry); msg_widget->task_count++; diff --git a/tasks/task_database.c b/tasks/task_database.c index d64925bc0e66..8ade0e6cd3d6 100644 --- a/tasks/task_database.c +++ b/tasks/task_database.c @@ -15,7 +15,6 @@ * If not, see . */ -#include #include #include #include @@ -132,23 +131,13 @@ static const char *database_info_get_current_element_name( return handle->list->elems[handle->list_ptr].data; } -static int task_database_iterate_start(retro_task_t *task, - database_info_handle_t *db, +static int task_database_iterate_start(database_info_handle_t *db, const char *name) { char msg[511]; msg[0] = msg[510] = '\0'; -#ifdef RARCH_INTERNAL - snprintf(msg, sizeof(msg), - "%s %s\n", - msg_hash_to_str(MSG_SCANNING), - path_basename(name)); - task_free_title(task); - task_set_title(task, strdup(msg)); - if (db->list->size != 0) - task_set_progress(task, roundf((float)db->list_ptr / (float)db->list->size * 100.0f)); -#else + snprintf(msg, sizeof(msg), STRING_REP_USIZE "/" STRING_REP_USIZE ": %s %s...\n", (size_t)db->list_ptr, @@ -157,8 +146,13 @@ static int task_database_iterate_start(retro_task_t *task, name); if (!string_is_empty(msg)) + { +#ifdef RARCH_INTERNAL + runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO); +#else fprintf(stderr, "msg: %s\n", msg); #endif + } db->status = DATABASE_STATUS_ITERATE; @@ -1210,6 +1204,8 @@ static void task_database_handler(retro_task_t *task) db->handle = database_info_file_init(db->fullpath, DATABASE_TYPE_ITERATE, task); } + task_free_title(task); + if (db->handle) db->handle->status = DATABASE_STATUS_ITERATE_BEGIN; } @@ -1279,7 +1275,7 @@ static void task_database_handler(retro_task_t *task) task_database_cleanup_state(dbstate); dbstate->list_index = 0; dbstate->entry_index = 0; - task_database_iterate_start(task, dbinfo, name); + task_database_iterate_start(dbinfo, name); break; case DATABASE_STATUS_ITERATE: if (task_database_iterate(db, dbstate, dbinfo) == 0) @@ -1296,14 +1292,14 @@ static void task_database_handler(retro_task_t *task) } else { -#ifdef RARCH_INTERNAL - task_set_progress(task, 100); -#else const char *msg = NULL; if (db->is_directory) msg = msg_hash_to_str(MSG_SCANNING_OF_DIRECTORY_FINISHED); else msg = msg_hash_to_str(MSG_SCANNING_OF_FILE_FINISHED); +#ifdef RARCH_INTERNAL + runloop_msg_queue_push(msg, 0, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO); +#else fprintf(stderr, "msg: %s\n", msg); #endif ui_companion_driver_notify_refresh(); @@ -1355,7 +1351,7 @@ bool task_push_dbscan( bool db_dir_show_hidden_files, retro_task_callback_t cb) { - retro_task_t *t = task_init(); + retro_task_t *t = (retro_task_t*)calloc(1, sizeof(*t)); db_handle_t *db = (db_handle_t*)calloc(1, sizeof(db_handle_t)); if (!t || !db) @@ -1366,8 +1362,6 @@ bool task_push_dbscan( t->callback = cb; t->title = strdup(msg_hash_to_str(MSG_PREPARING_FOR_CONTENT_SCAN)); - t->alternative_look = true; - db->show_hidden_files = db_dir_show_hidden_files; db->is_directory = directory; db->playlist_directory = NULL; diff --git a/tasks/task_decompress.c b/tasks/task_decompress.c index b6d3711ccbd4..cbdd3748842d 100644 --- a/tasks/task_decompress.c +++ b/tasks/task_decompress.c @@ -332,7 +332,7 @@ bool task_push_decompress( s->archive.type = ARCHIVE_TRANSFER_INIT; s->userdata = (struct archive_extract_userdata*)calloc(1, sizeof(*s->userdata)); - t = task_init(); + t = (retro_task_t*)calloc(1, sizeof(*t)); if (!t) goto error;