summaryrefslogtreecommitdiff
path: root/test-tycbutton/src/buttonChecker.h
blob: 2de14cb583bb6ea2dbe45412f1cca3ddc2800e1c (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
#ifndef _BUTTON_CHECK
#define _BUTTON_CHECK

#include "ofMain.h"
#include "ofURLFileLoader.h"

long ofToLong(const string& intString);

class buttonChecker : public ofThread{

	public:

		float interval; //time between refreshes in seconds
		std::string url;
		long last;
		float triggerTime;
		bool active;

		buttonChecker(){
			url = "http://tycleeson.com/trigger.php";
			interval=0.05;
			last=0;
			triggerTime=0.0f;
			active=false;
		}

		void set_interval(float _interval){
			interval=_interval;
		}

		void start(){
            startThread(true, false);   // blocking, verbose
        }

        void stop(){
            stopThread();
        }

        bool action(){
        	if(active){
        		active=false;
        		return true;
        	}
        	return false;
        }


		//--------------------------
		void threadedFunction(){

			cout  << "Api: " << url<<endl;

			while( isThreadRunning() != 0 ){

				//cout<<"."<<std::flush;
			
				long result = ofToLong(ofLoadURL(url).data.getText());
				if (result>last){
					last=result;
					active=true;
					triggerTime=ofGetElapsedTimef();
				}


				ofSleepMillis(interval * 1000);
			}
		}


};

#endif