File: switch_audio_compat.h

package info (click to toggle)
retroarch 1.14.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 67,792 kB
  • sloc: ansic: 1,075,189; cpp: 75,110; asm: 6,624; objc: 6,224; python: 3,535; sh: 2,734; makefile: 2,701; xml: 2,567; perl: 393; javascript: 9
file content (97 lines) | stat: -rw-r--r-- 3,095 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#ifndef _SWITCH_AUDIO_COMPAT_H
#define _SWITCH_AUDIO_COMPAT_H

#ifdef HAVE_LIBNX
#include <switch.h>
#else
#include <libtransistor/nx.h>
#endif

#ifdef HAVE_LIBNX

/* libnx definitions */

/* threading */
typedef Mutex compat_mutex;
typedef Thread compat_thread;
typedef CondVar compat_condvar;

#define compat_thread_create(thread, func, data, stack_size, prio, cpu) \
   threadCreate(thread, func, data, NULL, stack_size, prio, cpu)
#define compat_thread_start(thread) \
   threadStart(thread)
#define compat_thread_join(thread) \
   threadWaitForExit(thread)
#define compat_thread_close(thread) \
   threadClose(thread)
#define compat_mutex_create(mutex) \
   mutexInit(mutex)
#define compat_mutex_lock(mutex) \
   mutexLock(mutex)
#define compat_mutex_unlock(mutex) \
   mutexUnlock(mutex)
#define compat_condvar_create(condvar) \
   condvarInit(condvar)
#define compat_condvar_wait(condvar, mutex) \
   condvarWait(condvar, mutex)
#define compat_condvar_wake_all(condvar) \
   condvarWakeAll(condvar)

/* audio */
typedef AudioOutBuffer compat_audio_out_buffer;
#define switch_audio_ipc_init audoutInitialize
#define switch_audio_ipc_finalize audoutExit
#define switch_audio_ipc_output_get_released_buffer(a, b) audoutGetReleasedAudioOutBuffer(&a->current_buffer, &b)
#define switch_audio_ipc_output_append_buffer(a, b) audoutAppendAudioOutBuffer(b)
#define switch_audio_ipc_output_stop(a) audoutStopAudioOut()
#define switch_audio_ipc_output_start(a) audoutStartAudioOut()

#ifndef UINT64_MAX
#define UINT64_MAX U64_MAX
#endif

#else

/* libtransistor definitions */

typedef result_t Result;
#define R_FAILED(r) ((r) != RESULT_OK)

/* threading */
typedef trn_mutex_t compat_mutex;
typedef trn_thread_t compat_thread;
typedef trn_condvar_t compat_condvar;

#define compat_thread_create(thread, func, data, stack_size, prio, cpu) \
   trn_thread_create(thread, func, data, prio, cpu, stack_size, NULL)
#define compat_thread_start(thread) \
   trn_thread_start(thread)
#define compat_thread_join(thread) \
   trn_thread_join(thread, -1)
#define compat_thread_close(thread) \
   trn_thread_destroy(thread)
#define compat_mutex_create(mutex) \
   trn_mutex_create(mutex)
#define compat_mutex_lock(mutex) \
   trn_mutex_lock(mutex)
#define compat_mutex_unlock(mutex) \
   trn_mutex_unlock(mutex)
#define compat_condvar_create(condvar) \
   trn_condvar_create(condvar)
#define compat_condvar_wait(condvar, mutex) \
   trn_condvar_wait(condvar, mutex, -1)
#define compat_condvar_wake_all(condvar) \
   trn_condvar_signal(condvar, -1)

/* audio */
typedef audio_output_buffer_t compat_audio_out_buffer;
#define switch_audio_ipc_init audio_ipc_init
#define switch_audio_ipc_finalize audio_ipc_finalize
#define switch_audio_ipc_output_get_released_buffer(a, b) audio_ipc_output_get_released_buffer(&a->output, &b, &a->current_buffer)
#define switch_audio_ipc_output_append_buffer(a, b) audio_ipc_output_append_buffer(&a->output, b)
#define switch_audio_ipc_output_stop(a) audio_ipc_output_stop(&a->output)
#define switch_audio_ipc_output_start(a) audio_ipc_output_start(&a->output)

#endif

#endif