aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/glk_api.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-12-08 11:37:37 -0800
committerPaul Gilbert2018-12-08 19:05:59 -0800
commit0cbd51641b0bc1b205f90324399eca6b08a75c32 (patch)
treedd0a8f90993b7e3eb3332d07a3302d7f7db79cb7 /engines/glk/glk_api.cpp
parent3661fc61ec319752a767e5981581ded026a57dd1 (diff)
downloadscummvm-rg350-0cbd51641b0bc1b205f90324399eca6b08a75c32.tar.gz
scummvm-rg350-0cbd51641b0bc1b205f90324399eca6b08a75c32.tar.bz2
scummvm-rg350-0cbd51641b0bc1b205f90324399eca6b08a75c32.zip
GLK: FROTZ: Further sound handling
Diffstat (limited to 'engines/glk/glk_api.cpp')
-rw-r--r--engines/glk/glk_api.cpp41
1 files changed, 31 insertions, 10 deletions
diff --git a/engines/glk/glk_api.cpp b/engines/glk/glk_api.cpp
index 11047893ef..c24d452a50 100644
--- a/engines/glk/glk_api.cpp
+++ b/engines/glk/glk_api.cpp
@@ -975,7 +975,11 @@ schanid_t GlkAPI::glk_schannel_create(glui32 rock) {
}
void GlkAPI::glk_schannel_destroy(schanid_t chan) {
- delete chan;
+ if (chan) {
+ delete chan;
+ } else {
+ warning("schannel_dest roy: invalid ref");
+ }
}
schanid_t GlkAPI::glk_schannel_iterate(schanid_t chan, glui32 *rockptr) {
@@ -983,21 +987,38 @@ schanid_t GlkAPI::glk_schannel_iterate(schanid_t chan, glui32 *rockptr) {
}
glui32 GlkAPI::glk_schannel_get_rock(schanid_t chan) {
- return chan->_rock;
+ if (chan) {
+ return chan->_rock;
+ } else {
+ warning("schannel_get_rock: invalid ref");
+ return 0;
+ }
}
glui32 GlkAPI::glk_schannel_play(schanid_t chan, glui32 snd) {
- // TODO
- return 0;
+ if (chan) {
+ return chan->play(snd);
+ } else {
+ warning("schannel_play_ext: invalid ref");
+ return 0;
+ }
}
glui32 GlkAPI::glk_schannel_play_ext(schanid_t chan, glui32 snd, glui32 repeats, glui32 notify) {
- // TODO
- return 0;
+ if (chan) {
+ chan->play(snd, repeats, notify);
+ } else {
+ warning("schannel_play_ext: invalid ref");
+ return 0;
+ }
}
void GlkAPI::glk_schannel_stop(schanid_t chan) {
- // TODO
+ if (chan) {
+ chan->stop();
+ } else {
+ warning("schannel_stop: invalid ref");
+ }
}
void GlkAPI::glk_schannel_set_volume(schanid_t chan, glui32 vol) {
@@ -1005,17 +1026,17 @@ void GlkAPI::glk_schannel_set_volume(schanid_t chan, glui32 vol) {
}
void GlkAPI::glk_sound_load_hint(glui32 snd, glui32 flag) {
- // TODO
+ // No implementation
}
schanid_t GlkAPI::glk_schannel_create_ext(glui32 rock, glui32 volume) {
- // TODO
+ // No implementation
return nullptr;
}
glui32 GlkAPI::glk_schannel_play_multi(schanid_t *chanarray, glui32 chancount,
glui32 *sndarray, glui32 soundcount, glui32 notify) {
- // TODO
+ // No implementation
return 0;
}