#pragma once #include "ofMain.h" #include "ofxCsv.h" class scriptLine{ public: scriptLine(string audiofile,string cols,string wrds){ if (audio.load(audiofile)){ //requires https://github.com/arturoc/openFrameworks/tree/feature-soundPlayerDuration duration = ((float)audio.getDurationMS())/1000.0f; vector words=ofSplitString(wrds," "); avgWordDuration = duration / words.size(); ofLog()<<"loaded "< colours=ofSplitString(cols,","); for (auto c: colours){ palette.push_back(ofColor::fromHex(ofHexToInt(c))); } bisPlaying=false; } void play(){ if (audio.isLoaded()){ audio.play(); startTime=ofGetElapsedTimef(); } } bool isPlaying(){ return audio.isPlaying(); } void stop(){ if (isPlaying()){ audio.stop(); } } void update(){ if (isPlaying()){ //if (ofGetElapsedTimef()){} } } vector palette; string text; ofSoundPlayer audio; float duration; float avgWordDuration; bool bisPlaying; float startTime; }; class ofApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void exit(); void keyPressed(ofKeyEventArgs &keyargs); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void mouseEntered(int x, int y); void mouseExited(int x, int y); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); ofxCsv csv; vector script; vector::iterator playline; };