topical media & game development
lib-of-vs-apps-examples-moviePlayerExample-src-testApp.cpp / cpp
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){
}
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.