summaryrefslogtreecommitdiff
path: root/04_playobjects/src/testApp.cpp
blob: 360d0b0a15911121e44564063aae17e65f550552 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include "testApp.h"

//--------------------------------------------------------------
void testApp::setup() {

    ofSetLogLevel(OF_LOG_NOTICE);

    verdana.loadFont(ofToDataPath("verdana.ttf"), 10);

    playing=-1;
    numDevices=1;

    string filename="TRSS_nesbitt_recordings.xml";

    if( !XML.loadFile(filename) ){
        printf("unable to load recordings, check data/ folder\n");
    }else{
        if(XML.pushTag("TRSS")) {
            int num=XML.getNumTags("rec");
            if(num) {
                for (int i=0;i<num;i++) {
                    players.push_back(syncOniPlayer());
                    players[i].addPlayer(XML.getAttribute("rec","left","",i));
                    if (numDevices>1) players[i].addPlayer(XML.getAttribute("rec","right","",i));
                    players[i].audio=XML.getAttribute("rec","audio","",i);
                }
            }
            else printf("no recordings found!\n");
        }
    }

    //ofSetFrameRate(25.0f);
    offset=0.0f;
}

void testApp::startPlayers(int newplayer){
    if (playing>-1) players[playing].stop();
    soundplayer.stop();
    usleep(100000);
    playing=newplayer;
    players[playing].play();
}

//--------------------------------------------------------------
void testApp::update(){
    players[playing].update();
}

//--------------------------------------------------------------
void testApp::draw(){
    ofBackground(0, 0, 0);
	ofSetColor(255, 255, 255);

    ofPushMatrix();

    players[playing].draw();

    ofPopMatrix();

	ofSetColor(255, 255, 255);
	string msg = "MILLIS: " + ofToString(ofGetElapsedTimeMillis());
    msg += "\nFPS: " + ofToString(ofGetFrameRate());
    msg += "\nclip: "+ofToString(playing);
	msg += "\noffset: "+ofToString(offset);
    verdana.drawString(msg, 10, 10);
}

//--------------------------------------------------------------
void testApp::exit(){

}

//--------------------------------------------------------------
void testApp::keyPressed(int key){
    cerr<<"key: "<<key<<endl;
    int newplaying=playing;
    switch (key) {
        case ',':
            newplaying=playing-1;
            if (newplaying<0) newplaying=players.size()-1;
            break;
        case '.':
            newplaying=(playing+1)%players.size();
            break;
        case 'z':
            offset-=1;
            break;
        case 'x':
            offset+=1;
            break;
    }
    if (newplaying!=playing) startPlayers(newplaying);
}

//--------------------------------------------------------------
void testApp::keyReleased(int key){

}

//--------------------------------------------------------------
void testApp::mouseMoved(int x, int y ){

}

//--------------------------------------------------------------
void testApp::mouseDragged(int x, int y, int button){

}

//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){

}

//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){

}

//--------------------------------------------------------------
void testApp::windowResized(int w, int h){

}