Simplify content_get_crc

This commit is contained in:
twinaphex 2017-05-06 16:41:22 +02:00
parent 46b1b113e0
commit de80671658
6 changed files with 32 additions and 38 deletions

View File

@ -66,7 +66,7 @@ void content_set_does_not_need_content(void);
void content_unset_does_not_need_content(void);
bool content_get_crc(uint32_t **content_crc_ptr);
uint32_t content_get_crc(void);
void content_deinit(void);

17
movie.c
View File

@ -74,7 +74,7 @@ static struct bsv_state bsv_movie_state;
static bool bsv_movie_init_playback(bsv_movie_t *handle, const char *path)
{
uint32_t state_size;
uint32_t *content_crc_ptr = NULL;
uint32_t content_crc = 0;
uint32_t header[4] = {0};
RFILE *file = filestream_open(path, RFILE_MODE_READ, -1);
@ -102,10 +102,11 @@ static bool bsv_movie_init_playback(bsv_movie_t *handle, const char *path)
return false;
}
content_get_crc(&content_crc_ptr);
content_crc = content_get_crc();
if (swap_if_big32(header[CRC_INDEX]) != *content_crc_ptr)
RARCH_WARN("%s.\n", msg_hash_to_str(MSG_CRC32_CHECKSUM_MISMATCH));
if (content_crc != 0)
if (swap_if_big32(header[CRC_INDEX]) != content_crc)
RARCH_WARN("%s.\n", msg_hash_to_str(MSG_CRC32_CHECKSUM_MISMATCH));
state_size = swap_if_big32(header[STATE_SIZE_INDEX]);
@ -149,8 +150,8 @@ static bool bsv_movie_init_record(bsv_movie_t *handle, const char *path)
{
retro_ctx_size_info_t info;
uint32_t state_size;
uint32_t content_crc = 0;
uint32_t header[4] = {0};
uint32_t *content_crc_ptr = NULL;
RFILE *file = filestream_open(path, RFILE_MODE_WRITE, -1);
if (!file)
@ -159,14 +160,14 @@ static bool bsv_movie_init_record(bsv_movie_t *handle, const char *path)
return false;
}
handle->file = file;
handle->file = file;
content_get_crc(&content_crc_ptr);
content_crc = content_get_crc();
/* This value is supposed to show up as
* BSV1 in a HEX editor, big-endian. */
header[MAGIC_INDEX] = swap_if_little32(BSV_MAGIC);
header[CRC_INDEX] = swap_if_big32(*content_crc_ptr);
header[CRC_INDEX] = swap_if_big32(content_crc);
core_serialize_size(&info);

View File

@ -237,7 +237,7 @@ bool netplay_lan_ad_server(netplay_t *netplay)
(ssize_t) (2*sizeof(uint32_t)))
{
char s[NETPLAY_HOST_STR_LEN];
uint32_t *content_crc_ptr = NULL;
uint32_t content_crc = 0;
/* Make sure it's a valid query */
if (memcmp((void *) &ad_packet_buffer, "RANQ", 4))
@ -251,7 +251,7 @@ bool netplay_lan_ad_server(netplay_t *netplay)
info = runloop_get_system_info();
/* Now build our response */
content_get_crc(&content_crc_ptr);
content_crc = content_get_crc();
memset(&ad_packet_buffer, 0, sizeof(struct ad_packet));
memcpy(&ad_packet_buffer, "RANS", 4);
@ -274,7 +274,8 @@ bool netplay_lan_ad_server(netplay_t *netplay)
strlcpy(ad_packet_buffer.core_version, info->info.library_version,
NETPLAY_HOST_STR_LEN);
}
snprintf(s, sizeof(s), "%d", *content_crc_ptr);
snprintf(s, sizeof(s), "%d", content_crc);
strlcpy(ad_packet_buffer.content_crc, s,
NETPLAY_HOST_STR_LEN);

View File

@ -605,11 +605,9 @@ static void netplay_announce(void)
char *corename = NULL;
char *gamename = NULL;
char *coreversion = NULL;
uint32_t *content_crc_ptr = NULL;
settings_t *settings = config_get_ptr();
rarch_system_info_t *system = runloop_get_system_info();
content_get_crc(&content_crc_ptr);
uint32_t content_crc = content_get_crc();
net_http_urlencode_full(&username, settings->paths.username);
net_http_urlencode_full(&corename, system->info.library_name);
@ -621,7 +619,7 @@ static void netplay_announce(void)
snprintf(buf, sizeof(buf), "username=%s&core_name=%s&core_version=%s&"
"game_name=%s&game_crc=%08X&port=%d"
"&has_password=%d&has_spectate_password=%d&force_mitm=%d",
username, corename, coreversion, gamename, *content_crc_ptr,
username, corename, coreversion, gamename, content_crc,
settings->uints.netplay_port,
*settings->paths.netplay_password ? 1 : 0,
*settings->paths.netplay_spectate_password ? 1 : 0,

View File

@ -471,7 +471,7 @@ static void netplay_handshake_ready(netplay_t *netplay, struct netplay_connectio
bool netplay_handshake_info(netplay_t *netplay, struct netplay_connection *connection)
{
struct info_buf_s info_buf;
uint32_t *content_crc_ptr = NULL;
uint32_t content_crc = 0;
rarch_system_info_t *core_info = runloop_get_system_info();
memset(&info_buf, 0, sizeof(info_buf));
@ -491,10 +491,10 @@ bool netplay_handshake_info(netplay_t *netplay, struct netplay_connection *conne
}
/* Get our content CRC */
content_crc_ptr = NULL;
content_get_crc(&content_crc_ptr);
if (content_crc_ptr)
info_buf.content_crc = htonl(*content_crc_ptr);
content_crc = content_get_crc();
if (content_crc != 0)
info_buf.content_crc = htonl(content_crc);
/* Send it off and wait for info back */
if (!netplay_send(&connection->send_packet_buffer, connection->fd,
@ -766,7 +766,7 @@ bool netplay_handshake_pre_info(netplay_t *netplay,
struct info_buf_s info_buf;
uint32_t cmd_size;
ssize_t recvd;
uint32_t *content_crc_ptr = NULL;
uint32_t content_crc = 0;
const char *dmsg = NULL;
rarch_system_info_t *core_info = runloop_get_system_info();
@ -818,11 +818,11 @@ bool netplay_handshake_pre_info(netplay_t *netplay,
}
/* Check the content CRC */
content_crc_ptr = NULL;
content_get_crc(&content_crc_ptr);
if (content_crc_ptr)
content_crc = content_get_crc();
if (content_crc != 0)
{
if (ntohl(info_buf.content_crc) != *content_crc_ptr)
if (ntohl(info_buf.content_crc) != content_crc)
{
dmsg = msg_hash_to_str(MSG_CONTENT_CRC32S_DIFFER);
goto error;

View File

@ -132,7 +132,7 @@ typedef struct content_information_ctx
static struct string_list *temporary_content = NULL;
static bool _content_is_inited = false;
static bool core_does_not_need_content = false;
static uint32_t content_crc = 0;
static uint32_t content_rom_crc = 0;
/**
* content_file_read:
@ -320,7 +320,6 @@ static bool load_content_into_memory(
unsigned i, const char *path, void **buf,
ssize_t *length)
{
uint32_t *content_crc_ptr = NULL;
uint8_t *ret_buf = NULL;
RARCH_LOG("%s: %s.\n",
@ -349,11 +348,9 @@ static bool load_content_into_memory(
(void*)length);
}
content_get_crc(&content_crc_ptr);
content_rom_crc = encoding_crc32(0, ret_buf, *length);
*content_crc_ptr = encoding_crc32(0, ret_buf, *length);
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)*content_crc_ptr);
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc);
}
*buf = ret_buf;
@ -1577,12 +1574,9 @@ void content_unset_does_not_need_content(void)
core_does_not_need_content = false;
}
bool content_get_crc(uint32_t **content_crc_ptr)
uint32_t content_get_crc(void)
{
if (!content_crc_ptr)
return false;
*content_crc_ptr = &content_crc;
return true;
return content_rom_crc;
}
bool content_is_inited(void)
@ -1611,7 +1605,7 @@ void content_deinit(void)
}
temporary_content = NULL;
content_crc = 0;
content_rom_crc = 0;
_content_is_inited = false;
core_does_not_need_content = false;
}