Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Libretro
libretro-chailove
Commits
d7f6973e
Verified
Commit
d7f6973e
authored
Aug 22, 2019
by
RobLoach
Browse files
Update libretro-common
parent
da6bad20
Changes
4
Hide whitespace changes
Inline
Side-by-side
Makefile.common
View file @
d7f6973e
...
...
@@ -38,6 +38,7 @@ ifneq ($(STATIC_LINKING), 1)
$(CORE_DIR)
/vendor/libretro-common/lists/string_list.c
\
$(CORE_DIR)
/vendor/libretro-common/memmap/memalign.c
\
$(CORE_DIR)
/vendor/libretro-common/streams/file_stream.c
\
$(CORE_DIR)
/vendor/libretro-common/string/stdstring.c
\
$(CORE_DIR)
/vendor/libretro-common/vfs/vfs_implementation.c
\
)
# Ensure the sinc_resampler_neon is available for ARM NEON devices.
...
...
src/libretro_core_options.h
View file @
d7f6973e
#ifndef
SRC_
LIBRETRO_CORE_OPTIONS_H_
#define
SRC_
LIBRETRO_CORE_OPTIONS_H_
#ifndef LIBRETRO_CORE_OPTIONS_H_
_
#define LIBRETRO_CORE_OPTIONS_H_
_
#include <stdlib.h>
#include <string.h>
...
...
@@ -7,24 +7,47 @@
#include <libretro.h>
#include <retro_inline.h>
#ifndef HAVE_NO_LANGEXTRA
#include "libretro_core_options_intl.h"
#endif
/*
********************************
* VERSION: 1.3
********************************
*
* - 1.3: Move translations to libretro_core_options_intl.h
* - libretro_core_options_intl.h includes BOM and utf-8
* fix for MSVC 2010-2013
* - Added HAVE_NO_LANGEXTRA flag to disable translations
* on platforms/compilers without BOM support
* - 1.2: Use core options v1 interface when
* RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION is >= 1
* (previously required RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION == 1)
* - 1.1: Support generation of core options v0 retro_core_option_value
* arrays containing options with a single value
* - 1.0: First commit
*/
#ifdef __cplusplus
extern
"C"
{
#endif
/*
********************************
* Core Option Definitions
********************************
********************************
* Core Option Definitions
********************************
*/
/* RETRO_LANGUAGE_ENGLISH */
/* Default language:
* - All other languages must include the same keys and values
* - Will be used as a fallback in the event that frontend language
* is not available
* - Will be used as a fallback for any missing entries in
* frontend language definition */
* - All other languages must include the same keys and values
* - Will be used as a fallback in the event that frontend language
* is not available
* - Will be used as a fallback for any missing entries in
* frontend language definition */
struct
retro_core_option_definition
option_defs_us
[]
=
{
{
"chailove_alphablending"
,
...
...
@@ -51,199 +74,196 @@ struct retro_core_option_definition option_defs_us[] = {
{
NULL
,
NULL
,
NULL
,
{{
0
}},
NULL
},
};
/* RETRO_LANGUAGE_JAPANESE */
/* RETRO_LANGUAGE_FRENCH */
/* RETRO_LANGUAGE_SPANISH */
/* RETRO_LANGUAGE_GERMAN */
/* RETRO_LANGUAGE_ITALIAN */
/* RETRO_LANGUAGE_DUTCH */
/* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */
/* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */
/* RETRO_LANGUAGE_RUSSIAN */
/* RETRO_LANGUAGE_KOREAN */
/* RETRO_LANGUAGE_CHINESE_TRADITIONAL */
/* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */
/* RETRO_LANGUAGE_ESPERANTO */
/* RETRO_LANGUAGE_POLISH */
/* RETRO_LANGUAGE_VIETNAMESE */
/* RETRO_LANGUAGE_ARABIC */
/* RETRO_LANGUAGE_GREEK */
/* RETRO_LANGUAGE_TURKISH */
/*
********************************
* Language Mapping
********************************
********************************
* Language Mapping
********************************
*/
#ifndef HAVE_NO_LANGEXTRA
struct
retro_core_option_definition
*
option_defs_intl
[
RETRO_LANGUAGE_LAST
]
=
{
option_defs_us
,
/* RETRO_LANGUAGE_ENGLISH */
NULL
,
/* RETRO_LANGUAGE_JAPANESE */
NULL
,
/* RETRO_LANGUAGE_FRENCH */
NULL
,
/* RETRO_LANGUAGE_SPANISH */
NULL
,
/* RETRO_LANGUAGE_GERMAN */
NULL
,
/* RETRO_LANGUAGE_ITALIAN */
NULL
,
/* RETRO_LANGUAGE_DUTCH */
NULL
,
/* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */
NULL
,
/* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */
NULL
,
/* RETRO_LANGUAGE_RUSSIAN */
NULL
,
/* RETRO_LANGUAGE_KOREAN */
NULL
,
/* RETRO_LANGUAGE_CHINESE_TRADITIONAL */
NULL
,
/* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */
NULL
,
/* RETRO_LANGUAGE_ESPERANTO */
NULL
,
/* RETRO_LANGUAGE_POLISH */
NULL
,
/* RETRO_LANGUAGE_VIETNAMESE */
NULL
,
/* RETRO_LANGUAGE_ARABIC */
NULL
,
/* RETRO_LANGUAGE_GREEK */
NULL
,
/* RETRO_LANGUAGE_TURKISH */
option_defs_us
,
/* RETRO_LANGUAGE_ENGLISH */
NULL
,
/* RETRO_LANGUAGE_JAPANESE */
NULL
,
/* RETRO_LANGUAGE_FRENCH */
NULL
,
/* RETRO_LANGUAGE_SPANISH */
NULL
,
/* RETRO_LANGUAGE_GERMAN */
NULL
,
/* RETRO_LANGUAGE_ITALIAN */
NULL
,
/* RETRO_LANGUAGE_DUTCH */
NULL
,
/* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */
NULL
,
/* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */
NULL
,
/* RETRO_LANGUAGE_RUSSIAN */
NULL
,
/* RETRO_LANGUAGE_KOREAN */
NULL
,
/* RETRO_LANGUAGE_CHINESE_TRADITIONAL */
NULL
,
/* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */
NULL
,
/* RETRO_LANGUAGE_ESPERANTO */
NULL
,
/* RETRO_LANGUAGE_POLISH */
NULL
,
/* RETRO_LANGUAGE_VIETNAMESE */
NULL
,
/* RETRO_LANGUAGE_ARABIC */
NULL
,
/* RETRO_LANGUAGE_GREEK */
NULL
,
/* RETRO_LANGUAGE_TURKISH */
};
#endif
/*
********************************
* Functions
********************************
********************************
* Functions
********************************
*/
/* Handles configuration/setting of core options.
* Should only be called inside retro_set_environment().
* > We place the function body in the header to avoid the
* necessity of adding more .c files (i.e. want this to
* be as painless as possible for core devs)
*/
static
INLINE
void
libretro_set_core_options
(
retro_environment_t
environ_cb
)
{
unsigned
version
=
0
;
if
(
!
environ_cb
)
return
;
if
(
environ_cb
(
RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION
,
&
version
)
&&
(
version
==
1
))
{
struct
retro_core_options_intl
core_options_intl
;
unsigned
language
=
0
;
core_options_intl
.
us
=
option_defs_us
;
core_options_intl
.
local
=
NULL
;
if
(
environ_cb
(
RETRO_ENVIRONMENT_GET_LANGUAGE
,
&
language
)
&&
(
language
<
RETRO_LANGUAGE_LAST
)
&&
(
language
!=
RETRO_LANGUAGE_ENGLISH
))
core_options_intl
.
local
=
option_defs_intl
[
language
];
environ_cb
(
RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL
,
&
core_options_intl
);
}
else
{
size_t
i
;
size_t
num_options
=
0
;
struct
retro_variable
*
variables
=
NULL
;
char
**
values_buf
=
NULL
;
/* Determine number of options */
while
(
true
)
{
if
(
option_defs_us
[
num_options
].
key
)
{
num_options
++
;
}
else
{
break
;
}
}
/* Allocate arrays */
variables
=
(
struct
retro_variable
*
)
calloc
(
num_options
+
1
,
sizeof
(
struct
retro_variable
));
values_buf
=
(
char
**
)
calloc
(
num_options
,
sizeof
(
char
*
));
if
(
!
variables
||
!
values_buf
)
{
goto
error
;
}
/* Copy parameters from option_defs_us array */
for
(
i
=
0
;
i
<
num_options
;
i
++
)
{
const
char
*
key
=
option_defs_us
[
i
].
key
;
const
char
*
desc
=
option_defs_us
[
i
].
desc
;
struct
retro_core_option_value
*
values
=
option_defs_us
[
i
].
values
;
size_t
buf_len
=
3
;
values_buf
[
i
]
=
NULL
;
if
(
desc
)
{
size_t
num_values
=
0
;
/* Determine number of values */
while
(
true
)
{
if
(
values
[
num_values
].
value
)
{
buf_len
+=
strlen
(
values
[
num_values
].
value
);
num_values
++
;
}
else
{
break
;
}
}
/* Build values string */
if
(
num_values
>
1
)
{
size_t
j
;
buf_len
+=
num_values
-
1
;
buf_len
+=
strlen
(
desc
);
values_buf
[
i
]
=
(
char
*
)
calloc
(
buf_len
,
sizeof
(
char
));
if
(
!
values_buf
[
i
])
goto
error
;
strcpy
(
values_buf
[
i
],
desc
);
// NOLINT
strcat
(
values_buf
[
i
],
"; "
);
// NOLINT
for
(
j
=
0
;
j
<
num_values
;
j
++
)
{
strcat
(
values_buf
[
i
],
values
[
j
].
value
);
// NOLINT
if
(
j
!=
num_values
-
1
)
strcat
(
values_buf
[
i
],
"|"
);
// NOLINT
}
}
}
variables
[
i
].
key
=
key
;
variables
[
i
].
value
=
values_buf
[
i
];
}
/* Set variables */
environ_cb
(
RETRO_ENVIRONMENT_SET_VARIABLES
,
variables
);
* Should be called as early as possible - ideally inside
* retro_set_environment(), and no later than retro_load_game()
* > We place the function body in the header to avoid the
* necessity of adding more .c files (i.e. want this to
* be as painless as possible for core devs)
*/
static
INLINE
void
libretro_set_core_options
(
retro_environment_t
environ_cb
)
{
unsigned
version
=
0
;
if
(
!
environ_cb
)
return
;
if
(
environ_cb
(
RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION
,
&
version
)
&&
(
version
>=
1
))
{
#ifndef HAVE_NO_LANGEXTRA
struct
retro_core_options_intl
core_options_intl
;
unsigned
language
=
0
;
core_options_intl
.
us
=
option_defs_us
;
core_options_intl
.
local
=
NULL
;
if
(
environ_cb
(
RETRO_ENVIRONMENT_GET_LANGUAGE
,
&
language
)
&&
(
language
<
RETRO_LANGUAGE_LAST
)
&&
(
language
!=
RETRO_LANGUAGE_ENGLISH
))
core_options_intl
.
local
=
option_defs_intl
[
language
];
environ_cb
(
RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL
,
&
core_options_intl
);
#else
environ_cb
(
RETRO_ENVIRONMENT_SET_CORE_OPTIONS
,
&
option_defs_us
);
#endif
}
else
{
size_t
i
;
size_t
num_options
=
0
;
struct
retro_variable
*
variables
=
NULL
;
char
**
values_buf
=
NULL
;
/* Determine number of options */
while
(
true
)
{
if
(
option_defs_us
[
num_options
].
key
)
num_options
++
;
else
break
;
}
/* Allocate arrays */
variables
=
(
struct
retro_variable
*
)
calloc
(
num_options
+
1
,
sizeof
(
struct
retro_variable
));
values_buf
=
(
char
**
)
calloc
(
num_options
,
sizeof
(
char
*
));
if
(
!
variables
||
!
values_buf
)
goto
error
;
/* Copy parameters from option_defs_us array */
for
(
i
=
0
;
i
<
num_options
;
i
++
)
{
const
char
*
key
=
option_defs_us
[
i
].
key
;
const
char
*
desc
=
option_defs_us
[
i
].
desc
;
const
char
*
default_value
=
option_defs_us
[
i
].
default_value
;
struct
retro_core_option_value
*
values
=
option_defs_us
[
i
].
values
;
size_t
buf_len
=
3
;
size_t
default_index
=
0
;
values_buf
[
i
]
=
NULL
;
if
(
desc
)
{
size_t
num_values
=
0
;
/* Determine number of values */
while
(
true
)
{
if
(
values
[
num_values
].
value
)
{
/* Check if this is the default value */
if
(
default_value
)
if
(
strcmp
(
values
[
num_values
].
value
,
default_value
)
==
0
)
default_index
=
num_values
;
buf_len
+=
strlen
(
values
[
num_values
].
value
);
num_values
++
;
}
else
break
;
}
/* Build values string */
if
(
num_values
>
0
)
{
size_t
j
;
buf_len
+=
num_values
-
1
;
buf_len
+=
strlen
(
desc
);
values_buf
[
i
]
=
(
char
*
)
calloc
(
buf_len
,
sizeof
(
char
));
if
(
!
values_buf
[
i
])
goto
error
;
strcpy
(
values_buf
[
i
],
desc
);
strcat
(
values_buf
[
i
],
"; "
);
/* Default value goes first */
strcat
(
values_buf
[
i
],
values
[
default_index
].
value
);
/* Add remaining values */
for
(
j
=
0
;
j
<
num_values
;
j
++
)
{
if
(
j
!=
default_index
)
{
strcat
(
values_buf
[
i
],
"|"
);
strcat
(
values_buf
[
i
],
values
[
j
].
value
);
}
}
}
}
variables
[
i
].
key
=
key
;
variables
[
i
].
value
=
values_buf
[
i
];
}
/* Set variables */
environ_cb
(
RETRO_ENVIRONMENT_SET_VARIABLES
,
variables
);
error:
/* Clean up */
if
(
values_buf
)
{
for
(
i
=
0
;
i
<
num_options
;
i
++
)
{
if
(
values_buf
[
i
])
{
free
(
values_buf
[
i
]);
values_buf
[
i
]
=
NULL
;
}
}
free
(
values_buf
);
values_buf
=
NULL
;
}
if
(
variables
)
{
free
(
variables
);
variables
=
NULL
;
}
}
/* Clean up */
if
(
values_buf
)
{
for
(
i
=
0
;
i
<
num_options
;
i
++
)
{
if
(
values_buf
[
i
])
{
free
(
values_buf
[
i
]);
values_buf
[
i
]
=
NULL
;
}
}
free
(
values_buf
);
values_buf
=
NULL
;
}
if
(
variables
)
{
free
(
variables
);
variables
=
NULL
;
}
}
}
#ifdef __cplusplus
}
#endif
#endif
// SRC_LIBRETRO_CORE_OPTIONS_H_
#endif
src/libretro_core_options_intl.h
0 → 100644
View file @
d7f6973e
#ifndef LIBRETRO_CORE_OPTIONS_INTL_H__
#define LIBRETRO_CORE_OPTIONS_INTL_H__
#if defined(_MSC_VER) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
#pragma warning(disable:4566)
#endif
#include <libretro.h>
/*
********************************
* VERSION: 1.3
********************************
*
* - 1.3: Move translations to libretro_core_options_intl.h
* - libretro_core_options_intl.h includes BOM and utf-8
* fix for MSVC 2010-2013
* - Added HAVE_NO_LANGEXTRA flag to disable translations
* on platforms/compilers without BOM support
* - 1.2: Use core options v1 interface when
* RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION is >= 1
* (previously required RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION == 1)
* - 1.1: Support generation of core options v0 retro_core_option_value
* arrays containing options with a single value
* - 1.0: First commit
*/
#ifdef __cplusplus
extern
"C"
{
#endif
/*
********************************
* Core Option Definitions
********************************
*/
/* RETRO_LANGUAGE_JAPANESE */
/* RETRO_LANGUAGE_FRENCH */
/* RETRO_LANGUAGE_SPANISH */
/* RETRO_LANGUAGE_GERMAN */
/* RETRO_LANGUAGE_ITALIAN */
/* RETRO_LANGUAGE_DUTCH */
/* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */
/* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */
/* RETRO_LANGUAGE_RUSSIAN */
/* RETRO_LANGUAGE_KOREAN */
/* RETRO_LANGUAGE_CHINESE_TRADITIONAL */
/* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */
/* RETRO_LANGUAGE_ESPERANTO */
/* RETRO_LANGUAGE_POLISH */
/* RETRO_LANGUAGE_VIETNAMESE */
/* RETRO_LANGUAGE_ARABIC */
/* RETRO_LANGUAGE_GREEK */
/* RETRO_LANGUAGE_TURKISH */
#ifdef __cplusplus
}
#endif
#endif
libretro-common
@
f88c23f5
Compare
4ad6d556
...
f88c23f5
Subproject commit
4ad6d556e4c75c1ecdd29211ca10e1e4cc6d74a3
Subproject commit
f88c23f5c64bed490b3e61d582f4c20cf3925ed1
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment