コード例 #1
0
ファイル: rt_tmon.c プロジェクト: Strongc/proview
static void
subbCheck (
  sTimer	*tp
)
{
  sub_sBuffer	*bp = (sub_sBuffer *)tp->data;

  if (gdbroot->db->log.b.tmon)
    errh_Info("subbCheck: %u", tp->clock);

#if 0
  if (EXCL_ON) {
    /* Exclusive mode is on, requeue the
       buffer for later transmission */

    addTime(nowTime(&tp->time), msToTime(NULL, bp->dt)); 
    insertTimer(tp);
  }
#endif

  if (subsm_SendBuffer(bp)) {
    setTimer(tp, msToClock(NULL, bp->dt));
    insertTimer(tp);
  } else {
    freeTimer(tp);
  }
}
コード例 #2
0
ファイル: client.c プロジェクト: chickenbellyfinn/CS4513
/*
 * Watches socket to find a response for the given title
 * using TIMEOUT as maximum time to wait
 * returns adress:port string
 */
char* discoverHost(int sock, char* title)
{
	struct timeval timeout;
	int found = 0;
	fd_set fds;
	char message[MESSAGE_SIZE];
	int titleLen = strlen(title);

	msToTime(TIMEOUT, &timeout); //set up the timeout

	while(timeToMs(&timeout) > 0){
		//use select() to wait on socket up to timeout
		FD_ZERO(&fds);
		FD_SET(sock, &fds);
		select(sock+1, &fds, NULL, NULL, &timeout);

		if(FD_ISSET(sock, &fds)) {
			mrecv(sock, message, MESSAGE_SIZE); //read next message from socket
			//check if its the right title
			if(strncmp(title, message, titleLen) == 0){
				//get second line, which will have address:port
				char* host = (char*) calloc(strlen(message)-titleLen, sizeof(char));
				strcpy(host, &message[titleLen+1]);
				return host;
			}
		}
	}

	//matching host was not found, return NULL
	return NULL;
}
コード例 #3
0
ファイル: touchOsc.cpp プロジェクト: sewonist/photoMosaic
void testApp::parseIpadOSCMessage(){
    ofxOscMessage m;
    ipadReceiver.getNextMessage(&m);
    
    if(!bSenderLive){
        ipadIP = m.getRemoteIp();
        ipadSender.setup(ipadIP, PORT_TO_IPAD);
    }
    
    
    string msg_string="";
    string raw_address;
    
    raw_address = m.getAddress();

    if(raw_address=="/1/connect"){
        int val = m.getArgAsInt32(0);
        cout<<"connect request received: "<<val<<endl;
        if(val==0){
            oscSendInitConfig();
        }
    }else if(raw_address=="/1/runMosaic"){
        bUpdateMosaic = m.getArgAsInt32(0);
    }else if(raw_address=="/1/stay"){
        mosaicProcess.bStay = m.getArgAsInt32(0);
    }else if(raw_address=="/1/mosaicSpeed"){
        mosaicProcess.speed = m.getArgAsFloat(0);
        oscSendFormatedFloat("/1/labelSpeed", mosaicProcess.speed, 4);
    }else if(raw_address=="/1/encoderMosaicSpeed"){
        int val = (int) m.getArgAsFloat(0);
        if(val==0){
            mosaicProcess.speed /= 1.005;
        }else if(val==1){
            mosaicProcess.speed *= 1.005;
        }else{
            cout<<"encoderMosaicSpeed sending run data"<<endl;
        }
        oscSendFloat("/1/mosaicSpeed", mosaicProcess.speed);
        oscSendFormatedFloat("/1/labelSpeed", mosaicProcess.speed, 4);

    }else if(raw_address=="/1/zoomOut"){
        mosaicProcess.bZoomOut = m.getArgAsInt32(0);
        string msg = mosaicProcess.bZoomOut ? "Zoom out" : "Zoom in";
        oscSendString("/1/labelZoom", msg);
    }else if(raw_address=="/1/snapImage"){
        int val=m.getArgAsFloat(0);
        if(val==1){
            cout<<"snap an image"<<endl;
            imageSet->addImage(grayImage);
            mosaicProcess.bUseEnd = true;
            imageSet->saveImage(grayImage);
        }
    }else if(raw_address=="/1/useVideo"){
        mosaicProcess.bUseVideo = m.getArgAsInt32(0);
        cout<<"bUseVideo "<<mosaicProcess.bUseVideo<<endl;
    }else if(raw_address=="/1/presetOnly"){
        mosaicProcess.bUsePresetOnly = m.getArgAsInt32(0);
        cout<<"bUsePresetOnly "<<mosaicProcess.bUsePresetOnly<<endl;
    }else if(raw_address=="/1/brightness"){
        mosaicProcess.brightness = m.getArgAsFloat(0);
        oscSendFloat("/1/labelBrightness", mosaicProcess.brightness);
        cout<<"brightness "<<mosaicProcess.brightness<<endl;
    }else if(raw_address=="/1/contrast"){
        mosaicProcess.contrast = m.getArgAsFloat(0);
        oscSendFloat("/1/labelContrast", mosaicProcess.contrast);
        cout<<"contrast "<<mosaicProcess.contrast<<endl;
    }else if(raw_address=="/1/hesitation"){
        mosaicProcess.hesitation = m.getArgAsFloat(0);
        oscSendFloat("/1/labelHesitation", mosaicProcess.hesitation);
        cout<<"contrast "<<mosaicProcess.hesitation<<endl;
// Music player
// Add musicPosition, music msToTime() in testApp.h
    }else if(raw_address=="/1/musicVolume"){
        music.setVolume(m.getArgAsFloat(0));
        oscSendFloat("/1/labelVolume", music.getVolume());
    }else if(raw_address=="/1/musicPlaying"){
        bool playing = m.getArgAsInt32(0);
        if(playing){
            music.play();
            music.setPosition(musicPosition);
        }else{
            musicPosition = music.getPosition();
            music.stop();
        }
    }else if(raw_address=="/1/musicReset"){
        if(m.getArgAsInt32(0)==0){
            musicPosition = 0.f;
            music.setPosition(musicPosition);
            oscSendFloat("/1/musicPosition", 0.f);
            oscSendFloat("/1/labelMusicPositionMs", 0.f);
        }
    }else if(raw_address=="/1/musicPosition"){
        musicPosition = m.getArgAsFloat(0);
        music.setPosition(musicPosition);
        oscSendFloat("/1/MusicPosition", musicPosition);
        oscSendString("/1/labelMusicPositionMs", msToTime(music.getPositionMS()));
        // End Music Player
    }else if(raw_address=="/1/zoom"){
        float zoom = m.getArgAsFloat(0);
        mosaicProcess.display_w = (int) (mosaicProcess.max_display_w*zoom);
        if(mosaicProcess.display_w>1024) mosaicProcess.display_w = 1024;
        if(mosaicProcess.display_w<2) mosaicProcess.display_w = 2;
        mosaicProcess.display_h = mosaicProcess.display_w * 3 / 4;
    }else if(raw_address=="/1/reset"){
        int val=m.getArgAsFloat(0);
        if(val==1){
            cout<<"reset brightness and contrast"<<endl;
            mosaicProcess.brightness = 0;
            mosaicProcess.contrast = 0;
            oscSendFloat("/1/brightness", 0);
            oscSendFloat("/1/contrast", 0);
            oscSendFloat("/1/labelBrightness", 0);
            oscSendFloat("/1/labelContrast", 0);
            mosaicProcess.speed = 0.01;
            oscSendFloat("/1/mosaicSpeed", mosaicProcess.speed);
            oscSendFormatedFloat("/1/labelSpeed", mosaicProcess.speed, 4);
        }
    }else{
        cout<<"not handled: "<<raw_address<<endl;
    }

}
コード例 #4
0
ファイル: testApp.cpp プロジェクト: wdyang/danceIsFlame
void testApp::update(){
	if(resizeFluid) 	{
		fluidSolver.setSize(fluidCellsX, fluidCellsX / msa::getWindowAspectRatio());
		fluidDrawer.setup(&fluidSolver);
		resizeFluid = false;
        myVideo->setupVideo(fluidSolver.getWidth(), fluidSolver.getHeight(), &fluidSolver);
	}
    myVideo->update();
	
#ifdef USE_TUIO
    if(bTuioOn){
        tuioClient.getMessage();
        
        // do finger stuff
        list<ofxTuioCursor*>cursorList = tuioClient.getTuioCursors();
        float MaxSpeed = 0.01;
        float MaxSpeed2 = MaxSpeed*MaxSpeed;
        for(list<ofxTuioCursor*>::iterator it=cursorList.begin(); it != cursorList.end(); it++) {
            ofxTuioCursor *tcur = (*it);
            float vx = tcur->getXSpeed() * tuioCursorSpeedMult;
            float vy = tcur->getYSpeed() * tuioCursorSpeedMult;
            
            if(vx == 0 && vy == 0) {
                vx = ofRandom(-tuioStationaryForce, tuioStationaryForce);
                vx = vx > MaxSpeed ? MaxSpeed : vx;
                vy = ofRandom(-tuioStationaryForce, tuioStationaryForce);
                vy = vy > MaxSpeed ? MaxSpeed : vy;
            }
            float v2 = vx*vx+vy*vy;
            if(v2 > MaxSpeed2){
                float ratio = sqrt(v2/MaxSpeed2);
                vx/=ratio;
                vy/=ratio;
            };

//            float x =tcur->getX(), y=tcur->getY();
//            add a factor to correct LKB output range error
            float x =tcur->getX()*xFactor, y=tcur->getY()*yFactor;
//            float x =tcur->getX()*1.0, y=tcur->getY()*1.0;
            addToFluid(ofVec2f(x, y), ofVec2f(vx, vy), true, true);
            cout<<"TUIO "<<x <<" "<<y<<endl; 
        }
    }
#endif
	
	fluidSolver.update();
    
//    osc msg queue update:
    for(int i=0; i<NUM_MSG_STRINGS; i++){
        if(timers[i]<ofGetElapsedTimef()){
            msg_strings[i]="";
        }
    }
    
//    while(receiver.hasWaitingMessages()){
//        parseOSCMessage();
//    }
    
    while(ipadReceiver.hasWaitingMessages()){
        parseIpadOSCMessage();
    }
    
    if(music.getIsPlaying()){
        oscSendString("/1/labelMusicPositionMs", msToTime(music.getPositionMS()));
        oscSendFloat("/1/musicPosition", music.getPosition());
    }
}