sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
Loading...
Searching...
No Matches
main.c
1
#include <kernel.h>
2
#include <loadfile.h>
3
#include <math.h>
4
#include <sbv_patches.h>
5
#include <sifrpc.h>
6
#include <stdint.h>
7
#include <stdio.h>
8
#include <unistd.h>
9
10
#include "
audio.h
"
11
#include "libsd_irx.h"
12
#include "audio_irx.h"
13
14
#define SAMPLE_RATE 44100
15
#define FREQUENCY_HZ 440.0f
16
#define CHUNK_FRAMES 1024
17
#define SECONDS 3
18
19
int
main(
void
)
20
{
21
audio_stream_format_t
format = { SAMPLE_RATE, 16, 1 };
22
int16_t chunk[CHUNK_FRAMES];
23
float
phase = 0.0f;
24
int
chunks = SAMPLE_RATE * SECONDS / CHUNK_FRAMES;
25
int
rc;
26
27
SifInitRpc(0);
28
sbv_patch_enable_lmb();
29
SifExecModuleBuffer(libsd_irx, size_libsd_irx, 0, NULL, NULL);
30
SifExecModuleBuffer(audio_irx, size_audio_irx, 0, NULL, NULL);
31
32
rc =
audio_init
();
33
if
(rc ==
AUDIO_OK
)
34
rc =
audio_stream_start
(&format);
35
if
(rc !=
AUDIO_OK
) {
36
printf(
"audio: %s\n"
,
audio_get_error_message
(rc));
37
SleepThread();
38
}
39
40
for
(
int
i = 0; i < chunks; i++) {
41
for
(
int
n = 0; n < CHUNK_FRAMES; n++) {
42
chunk[n] = (int16_t)(sinf(phase) * 12000.0f);
43
phase += 2.0f * 3.14159265f * FREQUENCY_HZ / SAMPLE_RATE;
44
if
(phase > 2.0f * 3.14159265f)
45
phase -= 2.0f * 3.14159265f;
46
}
47
audio_stream_wait_until_writable
(
sizeof
(chunk), 1000);
48
audio_stream_queue_pcm
(chunk,
sizeof
(chunk));
49
}
50
51
while
(
audio_stream_get_queued_bytes
() > 0)
52
usleep(10000);
53
audio_stream_end
();
54
audio_shutdown
();
55
printf(
"done\n"
);
56
SleepThread();
57
return
0;
58
}
audio.h
audio_stream_format_t
struct audio_stream_format audio_stream_format_t
AUDIO_OK
#define AUDIO_OK
Definition
audio.h:33
audio_get_error_message
const char * audio_get_error_message(int error_code)
audio_shutdown
int audio_shutdown(void)
audio_init
int audio_init(void)
audio_stream_get_queued_bytes
int audio_stream_get_queued_bytes(void)
audio_stream_end
int audio_stream_end(void)
audio_stream_start
int audio_stream_start(const audio_stream_format_t *format)
audio_stream_queue_pcm
int audio_stream_queue_pcm(const void *pcm, int32_t byte_count)
audio_stream_wait_until_writable
int audio_stream_wait_until_writable(int32_t byte_count, int32_t timeout_ms)
audio
examples
tone
main.c
Generated by
1.18.0