mirror of
https://github.com/giongto35/cloud-game.git
synced 2026-01-23 02:34:42 +00:00
Remove unnecessary C bridge functions
This commit is contained in:
parent
817a19c757
commit
02210f1f8d
3 changed files with 35 additions and 81 deletions
|
|
@ -36,14 +36,12 @@ void core_log_cgo(enum retro_log_level level, const char *fmt, ...) {
|
|||
coreLog(level, msg);
|
||||
}
|
||||
|
||||
void bridge_retro_init(void *f) {
|
||||
core_log_cgo(RETRO_LOG_DEBUG, "Initialization...\n");
|
||||
void bridge_call(void *f) {
|
||||
((void (*)(void)) f)();
|
||||
}
|
||||
|
||||
void bridge_retro_deinit(void *f) {
|
||||
core_log_cgo(RETRO_LOG_DEBUG, "Deinitialiazation...\n");
|
||||
((void (*)(void)) f)();
|
||||
void bridge_set_callback(void *f, void *callback) {
|
||||
((void (*)(void *))f)(callback);
|
||||
}
|
||||
|
||||
unsigned bridge_retro_api_version(void *f) {
|
||||
|
|
@ -62,44 +60,14 @@ bool bridge_retro_set_environment(void *f, void *callback) {
|
|||
return ((bool (*)(retro_environment_t)) f)((retro_environment_t) callback);
|
||||
}
|
||||
|
||||
void bridge_retro_set_video_refresh(void *f, void *callback) {
|
||||
((bool (*)(retro_video_refresh_t)) f)((retro_video_refresh_t) callback);
|
||||
}
|
||||
|
||||
void bridge_retro_set_input_poll(void *f, void *callback) {
|
||||
((bool (*)(retro_input_poll_t)) f)((retro_input_poll_t) callback);
|
||||
}
|
||||
|
||||
void bridge_retro_set_input_state(void *f, void *callback) {
|
||||
((bool (*)(retro_input_state_t)) f)((retro_input_state_t) callback);
|
||||
}
|
||||
|
||||
void bridge_retro_set_audio_sample(void *f, void *callback) {
|
||||
((bool (*)(retro_audio_sample_t)) f)((retro_audio_sample_t) callback);
|
||||
}
|
||||
|
||||
void bridge_retro_set_audio_sample_batch(void *f, void *callback) {
|
||||
((bool (*)(retro_audio_sample_batch_t)) f)((retro_audio_sample_batch_t) callback);
|
||||
((int16_t (*)(retro_input_state_t)) f)((retro_input_state_t) callback);
|
||||
}
|
||||
|
||||
bool bridge_retro_load_game(void *f, struct retro_game_info *gi) {
|
||||
core_log_cgo(RETRO_LOG_DEBUG, "Loading the game...\n");
|
||||
return ((bool (*)(struct retro_game_info *)) f)(gi);
|
||||
}
|
||||
|
||||
void bridge_retro_unload_game(void *f) {
|
||||
core_log_cgo(RETRO_LOG_DEBUG, "Unloading the game...\n");
|
||||
((void (*)(void)) f)();
|
||||
}
|
||||
|
||||
void bridge_retro_reset(void *f) {
|
||||
((void (*)(void)) f)();
|
||||
}
|
||||
|
||||
void bridge_retro_run(void *f) {
|
||||
((void (*)(void)) f)();
|
||||
}
|
||||
|
||||
size_t bridge_retro_get_memory_size(void *f, unsigned id) {
|
||||
return ((size_t (*)(unsigned)) f)(id);
|
||||
}
|
||||
|
|
@ -173,8 +141,6 @@ void core_video_refresh_cgo(void *data, unsigned width, unsigned height, size_t
|
|||
}
|
||||
|
||||
void core_input_poll_cgo() {
|
||||
void coreInputPoll();
|
||||
coreInputPoll();
|
||||
}
|
||||
|
||||
int16_t core_input_state_cgo(unsigned port, unsigned device, unsigned index, unsigned id) {
|
||||
|
|
@ -182,16 +148,16 @@ int16_t core_input_state_cgo(unsigned port, unsigned device, unsigned index, uns
|
|||
return coreInputState(port, device, index, id);
|
||||
}
|
||||
|
||||
void core_audio_sample_cgo(int16_t left, int16_t right) {
|
||||
void coreAudioSample(int16_t, int16_t);
|
||||
coreAudioSample(left, right);
|
||||
}
|
||||
|
||||
size_t core_audio_sample_batch_cgo(const int16_t *data, size_t frames) {
|
||||
size_t coreAudioSampleBatch(const int16_t *, size_t);
|
||||
return coreAudioSampleBatch(data, frames);
|
||||
}
|
||||
|
||||
void core_audio_sample_cgo(int16_t left, int16_t right) {
|
||||
int16_t frame[2] = { left, right };
|
||||
core_audio_sample_batch_cgo(frame, 1);
|
||||
}
|
||||
|
||||
uintptr_t core_get_current_framebuffer_cgo() {
|
||||
uintptr_t coreGetCurrentFramebuffer();
|
||||
return coreGetCurrentFramebuffer();
|
||||
|
|
|
|||
|
|
@ -49,8 +49,9 @@ type Nanoarch struct {
|
|||
serializeSize C.size_t
|
||||
Stopped atomic.Bool
|
||||
sys struct {
|
||||
av C.struct_retro_system_av_info
|
||||
i C.struct_retro_system_info
|
||||
av C.struct_retro_system_av_info
|
||||
i C.struct_retro_system_info
|
||||
api C.unsigned
|
||||
}
|
||||
tickTime int64
|
||||
cSaveDirectory *C.char
|
||||
|
|
@ -213,7 +214,7 @@ func (n *Nanoarch) CoreLoad(meta Metadata) {
|
|||
|
||||
retroInit = loadFunction(coreLib, "retro_init")
|
||||
retroDeinit = loadFunction(coreLib, "retro_deinit")
|
||||
//retroAPIVersion = loadFunction(coreLib, "retro_api_version")
|
||||
retroAPIVersion = loadFunction(coreLib, "retro_api_version")
|
||||
retroGetSystemInfo = loadFunction(coreLib, "retro_get_system_info")
|
||||
retroGetSystemAVInfo = loadFunction(coreLib, "retro_get_system_av_info")
|
||||
retroSetEnvironment = loadFunction(coreLib, "retro_set_environment")
|
||||
|
|
@ -234,22 +235,24 @@ func (n *Nanoarch) CoreLoad(meta Metadata) {
|
|||
retroGetMemoryData = loadFunction(coreLib, "retro_get_memory_data")
|
||||
|
||||
C.bridge_retro_set_environment(retroSetEnvironment, C.core_environment_cgo)
|
||||
C.bridge_retro_set_video_refresh(retroSetVideoRefresh, C.core_video_refresh_cgo)
|
||||
C.bridge_retro_set_input_poll(retroSetInputPoll, C.core_input_poll_cgo)
|
||||
C.bridge_retro_set_input_state(retroSetInputState, C.core_input_state_cgo)
|
||||
C.bridge_retro_set_audio_sample(retroSetAudioSample, C.core_audio_sample_cgo)
|
||||
C.bridge_retro_set_audio_sample_batch(retroSetAudioSampleBatch, C.core_audio_sample_batch_cgo)
|
||||
C.bridge_set_callback(retroSetVideoRefresh, C.core_video_refresh_cgo)
|
||||
C.bridge_set_callback(retroSetInputPoll, C.core_input_poll_cgo)
|
||||
C.bridge_set_callback(retroSetAudioSample, C.core_audio_sample_cgo)
|
||||
C.bridge_set_callback(retroSetAudioSampleBatch, C.core_audio_sample_batch_cgo)
|
||||
|
||||
if n.LibCo {
|
||||
C.same_thread(retroInit)
|
||||
} else {
|
||||
C.bridge_retro_init(retroInit)
|
||||
C.bridge_call(retroInit)
|
||||
}
|
||||
|
||||
n.sys.api = C.bridge_retro_api_version(retroAPIVersion)
|
||||
C.bridge_retro_get_system_info(retroGetSystemInfo, &n.sys.i)
|
||||
n.log.Debug().Msgf("System >>> %v (%v) [%v] nfp: %v",
|
||||
n.log.Info().Msgf("System >>> %v (%v) [%v] nfp: %v, api: %v",
|
||||
C.GoString(n.sys.i.library_name), C.GoString(n.sys.i.library_version),
|
||||
C.GoString(n.sys.i.valid_extensions), bool(n.sys.i.need_fullpath))
|
||||
C.GoString(n.sys.i.valid_extensions), bool(n.sys.i.need_fullpath),
|
||||
uint(n.sys.api))
|
||||
}
|
||||
|
||||
func (n *Nanoarch) LoadGame(path string) error {
|
||||
|
|
@ -367,8 +370,8 @@ func (n *Nanoarch) Shutdown() {
|
|||
}
|
||||
})
|
||||
}
|
||||
C.bridge_retro_unload_game(retroUnloadGame)
|
||||
C.bridge_retro_deinit(retroDeinit)
|
||||
C.bridge_call(retroUnloadGame)
|
||||
C.bridge_call(retroDeinit)
|
||||
if n.Video.gl.enabled {
|
||||
thread.Main(func() {
|
||||
deinitVideo()
|
||||
|
|
@ -390,7 +393,7 @@ func (n *Nanoarch) Shutdown() {
|
|||
}
|
||||
|
||||
func (n *Nanoarch) Reset() {
|
||||
C.bridge_retro_reset(retroReset)
|
||||
C.bridge_call(retroReset)
|
||||
}
|
||||
|
||||
func (n *Nanoarch) Run() {
|
||||
|
|
@ -404,7 +407,7 @@ func (n *Nanoarch) Run() {
|
|||
n.log.Error().Err(err).Msg("ctx bind fail")
|
||||
}
|
||||
}
|
||||
C.bridge_retro_run(retroRun)
|
||||
C.bridge_call(retroRun)
|
||||
if n.Video.gl.enabled {
|
||||
runtime.UnlockOSThread()
|
||||
}
|
||||
|
|
@ -553,19 +556,19 @@ func RestoreSaveRAM(st State) {
|
|||
}
|
||||
}
|
||||
|
||||
// getMemorySize returns memory region size.
|
||||
func getMemorySize(id C.uint) uint {
|
||||
// memorySize returns memory region size.
|
||||
func memorySize(id C.uint) uint {
|
||||
return uint(C.bridge_retro_get_memory_size(retroGetMemorySize, id))
|
||||
}
|
||||
|
||||
// getMemoryData returns a pointer to memory data.
|
||||
func getMemoryData(id C.uint) unsafe.Pointer {
|
||||
// memoryData returns a pointer to memory data.
|
||||
func memoryData(id C.uint) unsafe.Pointer {
|
||||
return C.bridge_retro_get_memory_data(retroGetMemoryData, id)
|
||||
}
|
||||
|
||||
// ptSaveRam return SRAM memory pointer if core supports it or nil.
|
||||
func ptSaveRAM() *mem {
|
||||
ptr, size := getMemoryData(C.RETRO_MEMORY_SAVE_RAM), getMemorySize(C.RETRO_MEMORY_SAVE_RAM)
|
||||
ptr, size := memoryData(C.RETRO_MEMORY_SAVE_RAM), memorySize(C.RETRO_MEMORY_SAVE_RAM)
|
||||
if ptr == nil || size == 0 {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -595,7 +598,7 @@ func (m Metadata) HasHack(h string) bool {
|
|||
}
|
||||
|
||||
var (
|
||||
//retroAPIVersion unsafe.Pointer
|
||||
retroAPIVersion unsafe.Pointer
|
||||
retroDeinit unsafe.Pointer
|
||||
retroGetSystemAVInfo unsafe.Pointer
|
||||
retroGetSystemInfo unsafe.Pointer
|
||||
|
|
@ -669,9 +672,6 @@ func coreVideoRefresh(data unsafe.Pointer, width, height uint, packed uint) {
|
|||
Nan0.Handlers.OnVideo(data_, int32(dt), FrameInfo{W: width, H: height, Stride: packed})
|
||||
}
|
||||
|
||||
//export coreInputPoll
|
||||
func coreInputPoll() {}
|
||||
|
||||
//export coreInputState
|
||||
func coreInputState(port C.unsigned, device C.unsigned, index C.unsigned, id C.unsigned) C.int16_t {
|
||||
//Nan0.log.Debug().Msgf("%v %v %v %v", port, device, index, id)
|
||||
|
|
@ -725,12 +725,6 @@ func coreInputState(port C.unsigned, device C.unsigned, index C.unsigned, id C.u
|
|||
return Released
|
||||
}
|
||||
|
||||
//export coreAudioSample
|
||||
func coreAudioSample(l, r C.int16_t) {
|
||||
frame := []C.int16_t{l, r}
|
||||
coreAudioSampleBatch(unsafe.Pointer(&frame), 1)
|
||||
}
|
||||
|
||||
//export coreAudioSampleBatch
|
||||
func coreAudioSampleBatch(data unsafe.Pointer, frames C.size_t) C.size_t {
|
||||
if Nan0.Stopped.Load() {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#ifndef FRONTEND_H__
|
||||
#define FRONTEND_H__
|
||||
|
||||
void bridge_call(void *f);
|
||||
void bridge_set_callback(void *f, void *callback);
|
||||
|
||||
bool bridge_retro_load_game(void *f, struct retro_game_info *gi);
|
||||
void bridge_retro_unload_game(void *f);
|
||||
bool bridge_retro_serialize(void *f, void *data, size_t size);
|
||||
size_t bridge_retro_serialize_size(void *f);
|
||||
bool bridge_retro_unserialize(void *f, void *data, size_t size);
|
||||
|
|
@ -11,18 +13,10 @@ unsigned bridge_retro_api_version(void *f);
|
|||
size_t bridge_retro_get_memory_size(void *f, unsigned id);
|
||||
void *bridge_retro_get_memory_data(void *f, unsigned id);
|
||||
void bridge_context_reset(retro_hw_context_reset_t f);
|
||||
void bridge_retro_deinit(void *f);
|
||||
void bridge_retro_get_system_av_info(void *f, struct retro_system_av_info *si);
|
||||
void bridge_retro_get_system_info(void *f, struct retro_system_info *si);
|
||||
void bridge_retro_init(void *f);
|
||||
void bridge_retro_reset(void *f);
|
||||
void bridge_retro_run(void *f);
|
||||
void bridge_retro_set_audio_sample(void *f, void *callback);
|
||||
void bridge_retro_set_audio_sample_batch(void *f, void *callback);
|
||||
void bridge_retro_set_controller_port_device(void *f, unsigned port, unsigned device);
|
||||
void bridge_retro_set_input_poll(void *f, void *callback);
|
||||
void bridge_retro_set_input_state(void *f, void *callback);
|
||||
void bridge_retro_set_video_refresh(void *f, void *callback);
|
||||
void bridge_retro_keyboard_callback(void *f, bool down, unsigned keycode, uint32_t character, uint16_t keyModifiers);
|
||||
|
||||
bool core_environment_cgo(unsigned cmd, void *data);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue