Skip to content

Commit 82cc98c

Browse files
authored
Merge pull request #53 from greenfork/add-music-from-memory
2 parents f62fb0d + 00a3378 commit 82cc98c

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

src/audio.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,16 @@ static Janet cfun_LoadMusicStream(int32_t argc, Janet *argv) {
178178
return janet_wrap_abstract(music);
179179
}
180180

181+
static Janet cfun_LoadMusicStreamFromMemory(int32_t argc, Janet *argv) {
182+
janet_fixarity(argc, 3);
183+
const char *fileType = janet_getcstring(argv, 0);
184+
const unsigned char *data = jaylib_getunsignedcstring(argv, 1);
185+
int dataSize = janet_getinteger(argv, 2);
186+
Music *music = janet_abstract(&AT_Music, sizeof(Music));
187+
*music = LoadMusicStreamFromMemory(fileType, data, dataSize);
188+
return janet_wrap_abstract(music);
189+
}
190+
181191
static Janet cfun_IsMusicReady(int32_t argc, Janet *argv) {
182192
janet_fixarity(argc, 1);
183193
Music music = *jaylib_getmusic(argv, 0);
@@ -446,6 +456,10 @@ static JanetReg audio_cfuns[] = {
446456
"(load-music-stream file-name)\n\n"
447457
"Load music stream from file"
448458
},
459+
{"load-music-stream-from-memory", cfun_LoadMusicStreamFromMemory,
460+
"(load-music-stream-from-memory file-type data data-size)\n\n"
461+
"Load music stream from data"
462+
},
449463
{"music-ready?", cfun_IsMusicReady,
450464
"(music-ready? wave)\n\n"
451465
"Checks if a music stream is ready"

src/text.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,6 @@ static const char *jaylib_getcstring(const Janet *argv, int32_t n) {
1515
return janet_getcstring(argv, n);
1616
}
1717

18-
static const unsigned char *jaylib_getunsignedcstring(const Janet *argv, int32_t n) {
19-
if (janet_checktype(argv[n], JANET_BUFFER)) {
20-
JanetBuffer *buf = janet_unwrap_buffer(argv[n]);
21-
janet_buffer_push_u8(buf, 0);
22-
buf->count--;
23-
return (const unsigned char *)buf->data;
24-
}
25-
return (const unsigned char *)janet_getcstring(argv, n);
26-
}
27-
2818
static Janet cfun_GetFontDefault(int32_t argc, Janet *argv) {
2919
(void) argv;
3020
janet_fixarity(argc, 0);

src/types.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,3 +700,13 @@ static Janet jaylib_wrap_raycollision(RayCollision rayCollision) {
700700
janet_table_put(table, janet_wrap_keyword("normal"), jaylib_wrap_vec3(rayCollision.normal));
701701
return janet_wrap_table(table);
702702
}
703+
704+
static const unsigned char *jaylib_getunsignedcstring(const Janet *argv, int32_t n) {
705+
if (janet_checktype(argv[n], JANET_BUFFER)) {
706+
JanetBuffer *buf = janet_unwrap_buffer(argv[n]);
707+
janet_buffer_push_u8(buf, 0);
708+
buf->count--;
709+
return (const unsigned char *)buf->data;
710+
}
711+
return (const unsigned char *)janet_getcstring(argv, n);
712+
}

0 commit comments

Comments
 (0)