#include "testApp.h" #include "stdio.h" //-------------------------------------------------------------- testApp::testApp(){ } //-------------------------------------------------------------- void testApp::setup(){ ofBackground(255,255,255); fingerMovie.loadMovie("movies/fingers.mov"); fingerMovie.play(); } //-------------------------------------------------------------- void testApp::update(){ fingerMovie.idleMovie(); } //-------------------------------------------------------------- void testApp::draw(){ ofSetColor(0xFFFFFF); fingerMovie.draw(20,20); ofSetColor(0x000000); unsigned char * pixels = fingerMovie.getPixels(); // let's move through the "RGB" char array // using the red pixel to control the size of a circle. for (int i = 4; i < 320; i+=8){ for (int j = 4; j < 240; j+=8){ unsigned char r = pixels[(j * 320 + i)*3]; float val = 1 - ((float)r / 255.0f); ofCircle(400 + i,20+j,10*val); } } ofSetColor(0x000000); ofDrawBitmapString("press f to change",20,320); if(frameByframe) ofSetColor(0xCCCCCC); ofDrawBitmapString("mouse speed position",20,340); if(!frameByframe) ofSetColor(0xCCCCCC); else ofSetColor(0x000000); ofDrawBitmapString("keys <- -> frame by frame " ,190,340); ofSetColor(0x000000); ofDrawBitmapString("frame: " + ofToString(fingerMovie.getCurrentFrame()) + "/"+ofToString(fingerMovie.getTotalNumFrames()),20,380); ofDrawBitmapString("duration: " + ofToString(fingerMovie.getPosition()*fingerMovie.getDuration(),2) + "/"+ofToString(fingerMovie.getDuration(),2),20,400); ofDrawBitmapString("speed: " + ofToString(fingerMovie.getSpeed(),2),20,420); if(fingerMovie.getIsMovieDone()){ ofSetColor(0xFF0000); ofDrawBitmapString("end of movie",20,440); } } //-------------------------------------------------------------- void testApp::keyPressed (int key){ switch(key){ case 'f': frameByframe=!frameByframe; fingerMovie.setPaused(frameByframe); break; case OF_KEY_LEFT: fingerMovie.previousFrame(); break; case OF_KEY_RIGHT: fingerMovie.nextFrame(); break; case '0': fingerMovie.firstFrame(); break; } } //-------------------------------------------------------------- void testApp::keyReleased(int key){ } //-------------------------------------------------------------- void testApp::mouseMoved(int x, int y ){ if(!frameByframe){ int width = ofGetWidth(); float pct = (float)x / (float)width; float speed = (2 * pct - 1) * 5.0f; fingerMovie.setSpeed(speed); } } //-------------------------------------------------------------- void testApp::mouseDragged(int x, int y, int button){ if(!frameByframe){ int width = ofGetWidth(); float pct = (float)x / (float)width; fingerMovie.setPosition(pct); } } //-------------------------------------------------------------- void testApp::mousePressed(int x, int y, int button){ if(!frameByframe){ fingerMovie.setPaused(true); } } //-------------------------------------------------------------- void testApp::mouseReleased(int x, int y, int button){ if(!frameByframe){ fingerMovie.setPaused(false); } } //-------------------------------------------------------------- void testApp::resized(int w, int h){ }