summaryrefslogtreecommitdiff
path: root/vfg/src/Puppet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vfg/src/Puppet.cpp')
-rwxr-xr-xvfg/src/Puppet.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/vfg/src/Puppet.cpp b/vfg/src/Puppet.cpp
index 90ba137..9d9a11e 100755
--- a/vfg/src/Puppet.cpp
+++ b/vfg/src/Puppet.cpp
@@ -36,38 +36,45 @@ void Puppet::load(string filename) {
void Puppet::draw(float x, float y, float scale) {
if (playlist.size()>0) {
- if (!clips[playlist[0]].getIsPlaying()) {
- playlist.erase(playlist.begin());
- if (playlist.size()>0) {
- clips[playlist[0]].play();
+ if (!clips[playlist[0].second].getIsPlaying()) {
+ if (ofGetElapsedTimeMillis()-playlist[0].first>clips[playlist[0].second].getDuration()) {
+ playlist.erase(playlist.begin());
+ }
+ if (playlist.size()>0) {
+ if (playlist[0].first<ofGetElapsedTimeMillis())
+ clips[playlist[0].second].play();
}
}
}
if (playlist.size()==0) {
if (clips.find("base") != clips.end()) clips["base"].draw(x,y,scale);
}
- else {
- clips[playlist[0]].update();
- clips[playlist[0]].draw(x,y,scale);
+ else if (clips[playlist[0].second].getIsPlaying()){
+ clips[playlist[0].second].update();
+ clips[playlist[0].second].draw(x,y,scale);
}
}
-void Puppet::play(string clip){
+void Puppet::play(string clip,int time){
if (clips.find(clip) != clips.end()) {
- playlist.push_back(clip);
- if (playlist.size()==1) clips[playlist[0]].play();
+ playlist.push_back(make_pair(time,clip));
+ if (playlist.size()==1&&time<ofGetElapsedTimeMillis()) clips[playlist[0].second].play();
//printf("playing %s, %i, %s\n",playlist[0].c_str(),playlist.size(),clips[playlist[0]].getIsPlaying()?"true":"false");
}
}
-void Puppet::playNow(string clip){
+void Puppet::playNow(string clip,int time){
if (playlist.size()>0) {
- clips[playlist[0]].stop();
+ clips[playlist[0].second].stop();
playlist.clear();
}
play(clip);
}
bool Puppet::isPlaying(){
- if (playlist.size()>0) return clips[playlist[0]].getIsPlaying();
+ if (playlist.size()>0) return clips[playlist[0].second].getIsPlaying();
else return false;
}
+
+void Puppet::clear(){
+ playlist.clear();
+}