topical media & game development

talk show tell print

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.