mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-02-20 19:40:39 +00:00
Create content_ctl
This commit is contained in:
parent
8702689aaa
commit
2836c9755a
@ -1482,7 +1482,7 @@ bool event_command(enum event_command cmd)
|
||||
input_driver_ctl(RARCH_INPUT_CTL_REMOTE_INIT, NULL);
|
||||
break;
|
||||
case EVENT_CMD_TEMPORARY_CONTENT_DEINIT:
|
||||
content_temporary_free();
|
||||
content_ctl(CONTENT_CTL_TEMPORARY_FREE, NULL);
|
||||
break;
|
||||
case EVENT_CMD_SUBSYSTEM_FULLPATHS_DEINIT:
|
||||
if (!global)
|
||||
|
45
content.c
45
content.c
@ -750,34 +750,39 @@ bool init_content_file(void)
|
||||
error:
|
||||
if (content)
|
||||
string_list_free(content);
|
||||
content_temporary_free();
|
||||
content_ctl(CONTENT_CTL_TEMPORARY_FREE, NULL);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* content_free_temporary:
|
||||
*
|
||||
* Frees temporary content handle.
|
||||
**/
|
||||
void content_temporary_free(void)
|
||||
bool content_ctl(enum content_ctl_state state, void *data)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
if (!temporary_content)
|
||||
return;
|
||||
|
||||
for (i = 0; i < temporary_content->size; i++)
|
||||
switch(state)
|
||||
{
|
||||
const char *path = temporary_content->elems[i].data;
|
||||
case CONTENT_CTL_TEMPORARY_FREE:
|
||||
if (!temporary_content)
|
||||
return false;
|
||||
|
||||
RARCH_LOG("%s: %s.\n",
|
||||
msg_hash_to_str(MSG_REMOVING_TEMPORARY_CONTENT_FILE), path);
|
||||
if (remove(path) < 0)
|
||||
RARCH_ERR("%s: %s.\n",
|
||||
msg_hash_to_str(MSG_FAILED_TO_REMOVE_TEMPORARY_FILE),
|
||||
path);
|
||||
for (i = 0; i < temporary_content->size; i++)
|
||||
{
|
||||
const char *path = temporary_content->elems[i].data;
|
||||
|
||||
RARCH_LOG("%s: %s.\n",
|
||||
msg_hash_to_str(MSG_REMOVING_TEMPORARY_CONTENT_FILE), path);
|
||||
if (remove(path) < 0)
|
||||
RARCH_ERR("%s: %s.\n",
|
||||
msg_hash_to_str(MSG_FAILED_TO_REMOVE_TEMPORARY_FILE),
|
||||
path);
|
||||
}
|
||||
string_list_free(temporary_content);
|
||||
|
||||
temporary_content = NULL;
|
||||
break;
|
||||
case CONTENT_CTL_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
string_list_free(temporary_content);
|
||||
|
||||
temporary_content = NULL;
|
||||
return true;
|
||||
}
|
||||
|
10
content.h
10
content.h
@ -27,6 +27,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum content_ctl_state
|
||||
{
|
||||
CONTENT_CTL_NONE = 0,
|
||||
|
||||
/* Frees temporary content handle. */
|
||||
CONTENT_CTL_TEMPORARY_FREE
|
||||
};
|
||||
|
||||
/* Handles files related to libretro. */
|
||||
|
||||
/**
|
||||
@ -83,7 +91,7 @@ void save_ram_file(const char *path, int type);
|
||||
**/
|
||||
bool init_content_file(void);
|
||||
|
||||
void content_temporary_free(void);
|
||||
bool content_ctl(enum content_ctl_state state, void *data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user