X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fmoof%2Fsound_bindings.cc;fp=src%2Fmoof%2Fsound_bindings.cc;h=6849d91696e66f3fd2a625a968e6f165d43dc481;hp=9e81aa34a4aa1880f932bcbb373f5419493b8d05;hb=e9a16d767785b1a903a4466ff26265a5f7dae9e5;hpb=6f1b787a10d8ab1a3117a4b8c004dd2d90599608 diff --git a/src/moof/sound_bindings.cc b/src/moof/sound_bindings.cc index 9e81aa3..6849d91 100644 --- a/src/moof/sound_bindings.cc +++ b/src/moof/sound_bindings.cc @@ -18,16 +18,26 @@ namespace moof { static int sound_new(script& script) { - script::slot name = script[2].require_string("sound name"); - std::string str; - name.get(str); - - script.push(sound(str)); + if (script[2].get(str)) + { + sound sound(str); + + for (int i = 3; script[i]; ++i) + { + if (script[i].get(str)) sound.queue(str); + else break; + } + + script.push(sound); + return 1; + } + + script.push(sound()); return 1; } -static int sound_enqueue(script& script) +static int sound_sample(script& script) { sound* sound; script[1].require_object("sound").get(sound); @@ -35,39 +45,45 @@ static int sound_enqueue(script& script) std::string name; script[2].require_string("sound name").get(name); - sound->enqueue(name); + sound->sample(name); return 0; } -static int sound_play(script& script) +static int sound_queue(script& script) { sound* sound; script[1].require_object("sound").get(sound); - sound->play(); + + std::string name; + for (int i = 2; script[i]; ++i) + { + if (script[i].get(name)) sound->queue(name); + else break; + } return 0; } -static int sound_stop(script& script) +static int sound_play(script& script) { sound* sound; script[1].require_object("sound").get(sound); - sound->stop(); + sound->play(); return 0; } -static int sound_pause(script& script) +static int sound_stop(script& script) { sound* sound; script[1].require_object("sound").get(sound); - sound->pause(); + sound->stop(); return 0; } -static int sound_rewind(script& script) +static int sound_pause(script& script) { sound* sound; script[1].require_object("sound").get(sound); - sound->rewind(); + sound->pause(); return 0; } @@ -95,11 +111,11 @@ void sound::import(script& script, const std::string& nspace) script::slot parent = script.push_table(nspace); script::slot meta = script.push_class(sound_new); - meta.set_field("enqueue", sound_enqueue); + meta.set_field("sample", sound_sample); + meta.set_field("queue", sound_queue); meta.set_field("play", sound_play); meta.set_field("stop", sound_stop); meta.set_field("pause", sound_pause); - meta.set_field("rewind", sound_rewind); meta.set_field("toggle", sound_toggle); meta.set_field("is_playing", sound_is_playing);