# HG changeset patch # User Robert Tubb # Date 1366202645 -3600 # Node ID 3d627dce8bf0f5068eacc812e38ce887592265c4 # Parent 79c129e500e1232812a0582b96fa014c3138f21f Tidied up startup logic. diff -r 79c129e500e1 -r 3d627dce8bf0 HelpViewController.xib --- a/HelpViewController.xib Fri Apr 12 17:50:25 2013 +0100 +++ b/HelpViewController.xib Wed Apr 17 13:44:05 2013 +0100 @@ -13,7 +13,7 @@ IBProxyObject IBUIButton - IBUITextView + IBUILabel IBUIView @@ -36,105 +36,12 @@ 292 - - - 274 - {768, 933} - - - - _NS:9 - - 1 - MCAwIDAAA - - YES - YES - IBIPadFramework - NO - YES - - UHJlc3MgdGhlIHBsYXkgYnV0dG9uIGF0IHRoZSB0b3AgdG8gc3RhcnQgdGhlIHNlcXVlbmNlci4gUHJl -c3MgcGF1c2UgdG8gc3RvcC4NWW91IHdpbGwgYmUgdXNpbmcgYWxsIHRocmVlIG1vZGVzOiB0aGUgU0xJ -REVSUywgdGhlIFpPT01FUiBhbmQgQk9USCBmb3IgYWJvdXQgNSBtaW51dGVzIGVhY2gsIGluIGEgcmFu -ZG9tIG9yZGVyLiANDU9QRVJBVElORyBUSEUgWk9PTUVS4oCoDVRoZSByZWQgY3Jvc3NoYWlycyBpbiB0 -aGUgY2VudHJlIG9mIHRoZSBzY3JlZW4gcmVwcmVzZW50IHRoZSBwb2ludCBvbiB0aGUgc3VyZmFjZSB0 -aGF0IHlvdSBhcmUgbGlzdGVuaW5nIHRvLiBTY3JvbGwgdGhlIHN1cmZhY2UgdW5kZXIgdGhpcyBwb2lu -dCB0byBtb3ZlIHRvIGEgZGlmZmVyZW50IHNvdW5kLiBJbiBCT1RIIG1vZGUgeW91IHdpbGwgYmUgYWJs -ZSB0byBzZWUgdGhlIGVmZmVjdCBvZiB0aGlzIG9uIHRoZSBzbGlkZXJzLiBMaWtld2lzZSBpZiB5b3Ug -bW92ZSBhIHNsaWRlciB5b3Ugd2lsbCBob3AgdG8gYSBkaWZmZXJlbnQgcG9pbnQgb24gdGhlIHN1cmZh -Y2UuIFlvdXIgcGF0aCB0aHJvdWdoIHRoZSBzcGFjZSB3aWxsIHNob3cgYXMgYSB3aGl0ZSBsaW5lLCBh -bnkgcG9pbnRzIHlvdSBoYXZlIGhvdmVyZWQgb3ZlciB3aWxsIHNob3cgYXMgYmx1ZSBjaXJjbGVzLuKA -qA1TYXZlIGFueSBzb3VuZHMvc2VxdWVuY2VzIHRoYXQgeW91IGxpa2UgdXNpbmcgdGhlIOKAnHNhdmUg -cHJlc2V04oCdIGJ1dHRvbi4gQSBtYXJrZXIgd2lsbCBhcHBlYXIgb24gdGhlIHpvb20gc3VyZmFjZS4g -SWYgeW91IG1vdmUgdG8gdGhlIHZpY2luaXR5IG9mIGEgcHJlc2V0IG1hcmtlciwgdGhlIGNyb3NzaGFp -cnMgd2lsbCBzbmFwIHRvIHRoZSBwcmVzZXQsIGl0cyBkZXRhaWxzIHdpbGwgYXBwZWFyIGFuZCB0aGF0 -IHNvdW5kIHdpbGwgcGxheS4N4oCoVHdvIGZpbmdlciBwaW5jaCBtb3ZlbWVudHMgem9vbSB0aGUgc3Vy -ZmFjZSBqdXN0IGFzIGluIGEgbWFwcyBhcHAuIFRoZSBmdXJ0aGVyIHlvdSB6b29tIGluLCB0aGUgbGVz -cyB0aGUgc291bmQgd2lsbCBjaGFuZ2UgYXMgeW91IHNjcm9sbCBhcm91bmQuIEZvciBleGFtcGxlIHRo -ZSB5ZWxsb3cgbGluZXMgdGhhdCBhcHBlYXIgYXQgdGhlIGxhcmdlc3Qgc2NhbGUgY29ycmVzcG9uZCB0 -byB0aGUgc2xpZGVycyBqdW1waW5nIDY0IHVuaXRzLiBUaGUgd2hpdGUgbGluZXMgYXQgdGhlIHNtYWxs -ZXN0IHNjYWxlIGNvcnJlc3BvbmQgdG8ganVtcHMgb2Ygb25lIHVuaXQuIFRoZXJlIGFyZSA3IGxldmVs -czrigKjigKhZZWxsb3cgPSA2NCwgVGVhbCA9IDMyLCBQdXJwbGUgPSAxNiwgR3JlZW4gPSA4LCBEYXJr -IEJsdWUgPSA0LCBSZWQgPSAyLCBXaGl0ZSA9IDHigKjigKhMT0NL4oCo4oCoSWYgeW91IGZpbmQgYSBz -ZXF1ZW5jZSB5b3UgbGlrZSBidXQgd2FudCB0byBjaGFuZ2UgdGhlIHN5bnRoIHNvdW5kIHVzZSB0aGUg -IkxvY2sgWCIgYnV0dG9uLiBUaGlzIHdpbGwgcHJldmVudCB5b3UgYWNjaWRlbnRhbGx5IG1vdmluZyBp -biBmcm9tIGxlZnQgdG8gcmlnaHQgYW5kIG1lc3NpbmcgdXAgeW91ciBub3RlIHBhdHRlcm4uIFNpbWls -YXJseSBpZiB5b3UgZmluZCBhIHN5bnRoIHNvdW5kIHRoYXQgeW91IGxpa2UsIGJ1dCB3YW50IHRvIGNo -YW5nZSB0aGUgbm90ZSBzZXF1ZW5jZSwgdXNlIHRoZSAiTG9jayBZIiBidXR0b24uIOKAqOKAqFJBTkRP -TUlTReKAqOKAqFVzZSB0aGUgcmFuZG9taXNlIGJ1dHRvbiB0byBqdW1wIHRvIGEgcmFuZG9tIHBvaW50 -IG9uIHRoZSBncmlkLiDigKjigKhFWFRSQSBGRUFUVVJFU+KAqOKAqEFmdGVyIHlvdSBjb21wbGV0ZSB0 -aGUgdGltZWQgc2Vzc2lvbnMgYW5kIHRoZSBxdWVzdGlvbm5haXJlLCB5b3UgY2FuIHR1cm4gdGhlIHNs -aWRlcnMgYW5kIHRoZSB6b29tZXIgb24vb2ZmIHVzaW5nIHRoZSB0YWJzIGF0IHRoZSBib3R0b20gb2Yg -dGhlIHNjcmVlbi4gVGhlc2UgZnVydGhlciBmZWF0dXJlcyB3aWxsIGJlIGVuYWJsZWQ64oCo4oCoU01P -T1RISU5H4oCo4oCoV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCB0aGUgZXhwZXJpbWVudCwgYSAic21vb3Ro -IiBzd2l0Y2ggd2lsbCBhcHBlYXIuIFRoaXMgd2lsbCBpbnRlcnBvbGF0ZSB0aGUgZ3JpZCBzbyB0aGF0 -IHRoZSBzbGlkZXJzIGNoYW5nZSBtb3JlIHNtb290aGx5LiBOb3RlIHRoaXMgd2lsbCBicmVhayB0aGUg -b25lIHRvIG9uZSBtYXBwaW5nIGJldHdlZW4gc2xpZGVycyBhbmQgc3VyZmFjZTogcHJldmlvdXNseSBz -YXZlZCBwcmVzZXRzIHdpbGwgbm90IGFwcGVhciwgYW5kIGFueSBzYXZlZCBpbiB0aGlzIG1vZGUgd2ls -bCB0ZW5kIHRvIGFwcGVhciBpbiBhIHNsaWdodGx5IGRpZmZlcmVudCBwb3NpdGlvbiB3aGVuIHNtb290 -aCBpcyB0dXJuZWQgb2ZmLg0NA - - - - 1 - MC4zMzgyNjY5OTg0IDAuOTA1MzMyMjM5OSAxAA - - - Helvetica - 15 - 16 - - - - - - - - 1 - MC4zMzcyNTQ5MDIgMC45MDU4ODIzNTI5IDEAA - - - - - - - zQ0AwAEB+wIAA - - - NO - - 2 - IBCocoaTouchFramework - - 292 {{319, 941}, {130, 44}} - _NS:9 NO IBIPadFramework @@ -164,12 +71,89 @@ 16 + + + 292 + {{64, 53}, {640, 872}} + + + + _NS:9 + NO + YES + 7 + NO + IBIPadFramework + + SEVMUOKAqOKAqOKAqFByZXNzIHRoZSBwbGF5IGJ1dHRvbiBhdCB0aGUgdG9wIHRvIHN0YXJ0IHRoZSBz +ZXF1ZW5jZXIuIFByZXNzIHBhdXNlIHRvIHN0b3AuDVlvdSB3aWxsIGJlIHVzaW5nIGFsbCB0aHJlZSBt +b2RlczogdGhlIFNMSURFUlMsIHRoZSBaT09NRVIgYW5kIEJPVEggZm9yIGFib3V0IDUgbWludXRlcyBl +YWNoLCBpbiBhIHJhbmRvbSBvcmRlci4gDQ1PUEVSQVRJTkcgVEhFIFpPT01FUuKAqA1UaGUgcmVkIGNy +b3NzaGFpcnMgaW4gdGhlIGNlbnRyZSBvZiB0aGUgc2NyZWVuIHJlcHJlc2VudCB0aGUgcG9pbnQgb24g +dGhlIHN1cmZhY2UgdGhhdCB5b3UgYXJlIGxpc3RlbmluZyB0by4gU2Nyb2xsIHRoZSBzdXJmYWNlIHVu +ZGVyIHRoaXMgcG9pbnQgdG8gbW92ZSB0byBhIGRpZmZlcmVudCBzb3VuZC4gSW4gQk9USCBtb2RlIHlv +dSB3aWxsIGJlIGFibGUgdG8gc2VlIHRoZSBlZmZlY3Qgb2YgdGhpcyBvbiB0aGUgc2xpZGVycy4gTGlr +ZXdpc2UgaWYgeW91IG1vdmUgYSBzbGlkZXIgeW91IHdpbGwgaG9wIHRvIGEgZGlmZmVyZW50IHBvaW50 +IG9uIHRoZSBzdXJmYWNlLiBZb3VyIHBhdGggdGhyb3VnaCB0aGUgc3BhY2Ugd2lsbCBzaG93IGFzIGEg +d2hpdGUgbGluZSwgYW55IHBvaW50cyB5b3UgaGF2ZSBob3ZlcmVkIG92ZXIgd2lsbCBzaG93IGFzIGJs +dWUgY2lyY2xlcy7igKgNU2F2ZSBhbnkgc291bmRzL3NlcXVlbmNlcyB0aGF0IHlvdSBsaWtlIHVzaW5n +IHRoZSDigJxzYXZlIHByZXNldOKAnSBidXR0b24uIEEgbWFya2VyIHdpbGwgYXBwZWFyIG9uIHRoZSB6 +b29tIHN1cmZhY2UuIElmIHlvdSBtb3ZlIHRvIHRoZSB2aWNpbml0eSBvZiBhIHByZXNldCBtYXJrZXIs +IHRoZSBjcm9zc2hhaXJzIHdpbGwgc25hcCB0byB0aGUgcHJlc2V0LCBpdHMgZGV0YWlscyB3aWxsIGFw +cGVhciBhbmQgdGhhdCBzb3VuZCB3aWxsIHBsYXkuDeKAqFR3byBmaW5nZXIgcGluY2ggbW92ZW1lbnRz +IHpvb20gdGhlIHN1cmZhY2UganVzdCBhcyBpbiBhIG1hcHMgYXBwLiBUaGUgZnVydGhlciB5b3Ugem9v +bSBpbiwgdGhlIGxlc3MgdGhlIHNvdW5kIHdpbGwgY2hhbmdlIGFzIHlvdSBzY3JvbGwgYXJvdW5kLiBG +b3IgZXhhbXBsZSB0aGUgeWVsbG93IGxpbmVzIHRoYXQgYXBwZWFyIGF0IHRoZSBsYXJnZXN0IHNjYWxl +IGNvcnJlc3BvbmQgdG8gdGhlIHNsaWRlcnMganVtcGluZyA2NCB1bml0cy4gVGhlIHdoaXRlIGxpbmVz +IGF0IHRoZSBzbWFsbGVzdCBzY2FsZSBjb3JyZXNwb25kIHRvIGp1bXBzIG9mIG9uZSB1bml0LiBUaGVy +ZSBhcmUgNyBsZXZlbHM64oCo4oCoWWVsbG93ID0gNjQsIFRlYWwgPSAzMiwgUHVycGxlID0gMTYsIEdy +ZWVuID0gOCwgRGFyayBCbHVlID0gNCwgUmVkID0gMiwgV2hpdGUgPSAx4oCo4oCoTE9DS+KAqOKAqOKA +qElmIHlvdSBmaW5kIGEgc2VxdWVuY2UgeW91IGxpa2UgYnV0IHdhbnQgdG8gY2hhbmdlIHRoZSBzeW50 +aCBzb3VuZCB1c2UgdGhlICJMb2NrIFgiIGJ1dHRvbi4gVGhpcyB3aWxsIHByZXZlbnQgeW91IGFjY2lk +ZW50YWxseSBtb3ZpbmcgaW4gZnJvbSBsZWZ0IHRvIHJpZ2h0IGFuZCBtZXNzaW5nIHVwIHlvdXIgbm90 +ZSBwYXR0ZXJuLiBTaW1pbGFybHkgaWYgeW91IGZpbmQgYSBzeW50aCBzb3VuZCB0aGF0IHlvdSBsaWtl +LCBidXQgd2FudCB0byBjaGFuZ2UgdGhlIG5vdGUgc2VxdWVuY2UsIHVzZSB0aGUgIkxvY2sgWSIgYnV0 +dG9uLiDigKjigKjigKhFWFRSQSBGRUFUVVJFU+KAqOKAqEFmdGVyIHlvdSBjb21wbGV0ZSB0aGUgdGlt +ZWQgc2Vzc2lvbnMgYW5kIHRoZSBxdWVzdGlvbm5haXJlLCB5b3UgY2FuIHR1cm4gdGhlIHNsaWRlcnMg +YW5kIHRoZSB6b29tZXIgb24vb2ZmIHVzaW5nIHRoZSB0YWJzIGF0IHRoZSBib3R0b20gb2YgdGhlIHNj +cmVlbi4gVGhlc2UgZnVydGhlciBmZWF0dXJlcyB3aWxsIGJlIGVuYWJsZWQ64oCo4oCoV2hlbiB5b3Ug +aGF2ZSBmaW5pc2hlZCB0aGUgZXhwZXJpbWVudCwgYSAic21vb3RoIiBzd2l0Y2ggd2lsbCBhcHBlYXIu +IFRoaXMgd2lsbCBpbnRlcnBvbGF0ZSB0aGUgZ3JpZCBzbyB0aGF0IHRoZSBzbGlkZXJzIGNoYW5nZSBt +b3JlIHNtb290aGx5LiBOb3RlIHRoaXMgd2lsbCBicmVhayB0aGUgb25lIHRvIG9uZSBtYXBwaW5nIGJl +dHdlZW4gc2xpZGVycyBhbmQgc3VyZmFjZTogcHJldmlvdXNseSBzYXZlZCBwcmVzZXRzIHdpbGwgbm90 +IGFwcGVhciwgYW5kIGFueSBzYXZlZCBpbiB0aGlzIG1vZGUgd2lsbCB0ZW5kIHRvIGFwcGVhciBpbiBh +IHNsaWdodGx5IGRpZmZlcmVudCBwb3NpdGlvbiB3aGVuIHNtb290aCBpcyB0dXJuZWQgb2ZmLg3igKhN +SURJIENDIHZhbHVlcyAobnVtYmVycyAwLTkpIHdpbGwgYmUgc2VudCBmcm9tIHRoZSBzbGlkZXJzLCBv +biBjaGFubmVsIDcuIOKAqA0 + + + 1 + MCAxIDAuOTc2NDI2Mjc5OAA + + + 0 + 300 + + 1 + 16 + + + Helvetica + 16 + 16 + + NO + 640 + {768, 1024} - - + + + 1 + MCAwIDAAA + NO IBUIScreenMetrics @@ -235,22 +219,21 @@ - + - 4 - - - - - 14 + + 26 + + + @@ -260,13 +243,13 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 24 + 26 diff -r 79c129e500e1 -r 3d627dce8bf0 TopButtonViewController.xib --- a/TopButtonViewController.xib Fri Apr 12 17:50:25 2013 +0100 +++ b/TopButtonViewController.xib Wed Apr 17 13:44:05 2013 +0100 @@ -45,7 +45,7 @@ -2147483356 - {{106, 9}, {94, 27}} + {{108, 9}, {94, 27}} @@ -71,10 +71,11 @@ 1 - + IBIPadFramework + 59 - 5 + 6 IBIPadFramework @@ -110,6 +111,11 @@ 1 + + IBIPadFramework + + 5 + Lock X IBIPadFramework @@ -138,9 +144,10 @@ -2147483356 - {{60, 11}, {59, 21}} + {{59, 11}, {59, 21}} + _NS:9 NO YES @@ -393,7 +400,6 @@ - @@ -402,6 +408,8 @@ + + @@ -456,11 +464,6 @@ - 40 - - - - 35 @@ -488,6 +491,16 @@ + + 54 + + + + + 55 + + + @@ -506,19 +519,20 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 52 + 55 diff -r 79c129e500e1 -r 3d627dce8bf0 UsernameAlertViewController.h --- a/UsernameAlertViewController.h Fri Apr 12 17:50:25 2013 +0100 +++ b/UsernameAlertViewController.h Wed Apr 17 13:44:05 2013 +0100 @@ -11,6 +11,9 @@ @interface UsernameAlertViewController : NSObject @property (strong,nonatomic) UIAlertView * alert; +@property (nonatomic, assign) id theOFAppRef; -(void)showUserNamePrompt; +-(void)setAppRef:(id)theAppRef; + @end diff -r 79c129e500e1 -r 3d627dce8bf0 UsernameAlertViewController.mm --- a/UsernameAlertViewController.mm Fri Apr 12 17:50:25 2013 +0100 +++ b/UsernameAlertViewController.mm Wed Apr 17 13:44:05 2013 +0100 @@ -32,7 +32,9 @@ } - +-(void)setAppRef:(id)theAppRef{ + self.theOFAppRef = theAppRef; +} - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ @@ -43,6 +45,7 @@ return; } eventLogger.setUsername([userName cStringUsingEncoding:NSASCIIStringEncoding]); + ((testApp *)self.theOFAppRef)->startTimedSession(); } diff -r 79c129e500e1 -r 3d627dce8bf0 eventLogger.h --- a/eventLogger.h Fri Apr 12 17:50:25 2013 +0100 +++ b/eventLogger.h Wed Apr 17 13:44:05 2013 +0100 @@ -30,7 +30,7 @@ #define EVENT_THIN_FACTOR 12 #define EVENT_LOG_FILENAME "log.json" -#define UPLOAD_CHUNK_SIZE 10 +#define UPLOAD_CHUNK_SIZE 1000 #define APP_CREATION_TIME 381429000000 // milliseconds to the time i wrote this wee blighter. saves digits #define SCROLL_TRAIL_LENGTH 200 #define PROGRAM_VERSION 0.5 // NOW USES NEW HILBERT CURVE. ALL OLD PRESETS WILL BE INVALID :( @@ -156,7 +156,7 @@ EventLogger(); // public methods: - void init(); + void startLoadAll(); void exitAndSave(); void setUsername(const char *u); void newUser(); @@ -193,16 +193,17 @@ ofxiPhoneDeviceType iOSdeviceType; - void testConnection(); + vector questionnaireAnswers; int interfaceOrder; // private methods + void testConnection(); void checkLogFile(); void deleteLogs(); // new user bool uploadEventLog(bool async); void firstEverAppOpen(); - void checkExistingLogFile(const string &jsonFile); + void loadExistingLogFile(const string &jsonFile); void uploadQuestionnaire(); bool sendToServer(string functionName, Json::Value jsonData, bool async); diff -r 79c129e500e1 -r 3d627dce8bf0 eventLogger.mm --- a/eventLogger.mm Fri Apr 12 17:50:25 2013 +0100 +++ b/eventLogger.mm Wed Apr 17 13:44:05 2013 +0100 @@ -46,19 +46,38 @@ cout << "Device: " << iOSdeviceType << '\n'; nextUploadQty = UPLOAD_CHUNK_SIZE; // amount of data uploaded is always more than UPLOAD_CHUNK_SIZE events + serverComms = [[ServerComms alloc] init]; } - -void EventLogger::init(){ +//--------------------------------------------------------------------------- +void EventLogger::startLoadAll(){ - checkExistingLogFile(ofxiPhoneGetDocumentsDirectory() + EVENT_LOG_FILENAME); + loadExistingLogFile(ofxiPhoneGetDocumentsDirectory() + EVENT_LOG_FILENAME); + + sessionStartTime = ofGetSystemTime(); - - logEvent(APP_STARTED); - - serverComms = [[ServerComms alloc] init]; + testConnection(); - testConnection(); + // if we have a back log of events upload them + if(theEvents.size() > nextUploadQty && ! logUploadInProgress){ + //try to upload + uploadEventLog(true); + } + + if(questionnaireCompleted && !questionnaireUploaded){ + uploadQuestionnaire(); + } + + //TODO if questionnaire wasn't reached but still opened then set the timer to something sensible + + //timer.setInteractionTime(savedInteractionTime); + //timer.setOrderFromPrevious(interfaceOrder); + + // for now sod it, start from scratch + if(!questionnaireCompleted){ + cout<<"Questionnaire NOT completed - first APP open called\n"; + firstEverAppOpen(); + } } //--------------------------------------------------------------------------- @@ -73,8 +92,9 @@ // this reads the persistent log file , checks if we've used the app before and // if we've answered questionnaire or not -// this function is horrible -void EventLogger::checkExistingLogFile(const string &jsonFile){ +// should just store stuff. the start up state should be handled by testAPp + +void EventLogger::loadExistingLogFile(const string &jsonFile){ Json::Value root; Json::Reader reader; @@ -85,7 +105,7 @@ stringstream fileText; string line; if(!theFile){ - + cout<<"No event log file found - first APP open called\n"; firstEverAppOpen(); return; }else{ @@ -96,11 +116,7 @@ } theFile.close(); } - - // otherwise, we've been in here before - - ///////////// - // Parse json + cout << "size of log JSON string:" << fileText.str().length() << "BYTES \n"; bool parsingSuccessful = reader.parse( fileText.str(), root ); @@ -129,13 +145,9 @@ const Json::Value jlogs = root["events"]; for ( int index = 0; index < jlogs.size(); ++index ) theEvents.push_back(lEvent(jlogs[index])); - if(theEvents.size() > nextUploadQty && ! logUploadInProgress){ - //try to upload - uploadEventLog(true); - } + ////////////// - // what stage is the experiment at?? if(questionnaireCompleted && !questionnaireUploaded){ // then read it in and upload it @@ -149,40 +161,23 @@ questionnaireAnswers.push_back(JArray[i].asInt()); } questionnaireComments = JQ["comments"].toStyledString(); - uploadQuestionnaire(); + //uploadQuestionnaire(); } - //TODO if questionnaire wasn't reached but still opened then set the timer to something sensible - - if(!questionnaireCompleted){ - // for now sod it, start from scratch - firstEverAppOpen(); - return; - } + cout << "Total interaction time: " << savedInteractionTime << '\n'; - - //timer.setInteractionTime(savedInteractionTime); - //timer.setOrderFromPrevious(interfaceOrder); - - // otherwise just start - ((testApp *)ofGetAppPtr())->justStart(); - + } //--------------------------------------------------------------------------- void EventLogger::firstEverAppOpen(){ - cout<<"no event log file - first APP open\n"; + nextUploadNumber = 0; deviceID = ofGetSystemTimeMicros(); savedInteractionTime = 0; questionnaireCompleted = false; questionnaireUploaded = false; - //((testApp *)ofGetAppPtr())->showIntro(); - //consentGiven = false; - //((testApp *)ofGetAppPtr())->justStart(); - - } @@ -379,12 +374,7 @@ // called from alertView OK in iViewController void EventLogger::setUsername(const char *u){ userName = u; - // start interaction clock - //timer.startInteractionClock(); - [((testApp *)ofGetAppPtr())->tsc startTimer]; - - // press play?? } //--------------------------------------------------------------------------- void EventLogger::thinnedScrollEvent(lEvent newEvent){ diff -r 79c129e500e1 -r 3d627dce8bf0 testApp.h --- a/testApp.h Fri Apr 12 17:50:25 2013 +0100 +++ b/testApp.h Wed Apr 17 13:44:05 2013 +0100 @@ -92,6 +92,11 @@ void draw(); void exit(); + void initialiseVariables(); + void initialiseGUIs(); + void initialiseMIDI(); + + float getWidth(); float getHeight(); @@ -129,6 +134,7 @@ void seqStartStop(bool go); void showHelp(); void helpHidden(); + void startTimedSession(); // shortcut function for testing void justStart(); void loadSequences(); diff -r 79c129e500e1 -r 3d627dce8bf0 testApp.mm --- a/testApp.mm Fri Apr 12 17:50:25 2013 +0100 +++ b/testApp.mm Wed Apr 17 13:44:05 2013 +0100 @@ -15,8 +15,7 @@ //DeviceID3523537000 -//-------------------------------------------------------------- -void testApp::setup(){ +void testApp::initialiseVariables(){ paused = true; sendMIDIAndOSC = false; @@ -55,14 +54,10 @@ freqIndexes.push_back(8); - ofxiPhoneSetOrientation( OFXIPHONE_ORIENTATION_PORTRAIT ); // do this before setting up all the other objects - /* - sliderViewController = [[SliderViewController alloc] initWithNibName:@"SliderViewController" bundle:nil]; - [ofxiPhoneGetGLParentView() addSubview:sliderViewController.view]; - [sliderViewController setAppRef:(id)this]; - sliderViewController.view.frame = CGRectMake(0,getHeight()-43 - 363,getWidth(),363); - */ - // initialise the interfaces + ofxiPhoneSetOrientation( OFXIPHONE_ORIENTATION_PORTRAIT ); + ofxiPhoneExternalDisplay::mirrorOn(); +} +void testApp::initialiseGUIs(){ theGridView.init(); setupSliderGui(); @@ -73,17 +68,6 @@ sliderVals.push_back(64); } - // initialise PD - - int ticksPerBuffer = 8; // 8 * 64 = buffer len of 512 - - // setup the app core - core.setup(2, 1, 44100, ticksPerBuffer); - - // setup OF sound stream - ofSoundStreamSetup(2, 1, this, 44100, ofxPd::blockSize()*ticksPerBuffer, 3); - - // set up iOS gui stuff bottomTabViewController = [[BottomTabViewController alloc] initWithNibName:@"BottomTabViewController" bundle:nil]; @@ -102,39 +86,26 @@ topButtonViewController.view.frame = CGRectMake(0,0,getWidth(),44); usernameAlertViewController = [[UsernameAlertViewController alloc] init]; + [usernameAlertViewController setAppRef:(id)this]; helpViewController = [[HelpViewController alloc] initWithNibName:@"HelpViewController" bundle:nil]; [ofxiPhoneGetGLParentView() addSubview:helpViewController.view]; [helpViewController setAppRef:(id)this]; helpViewController.view.hidden = YES; + /* + sliderViewController = [[SliderViewController alloc] initWithNibName:@"SliderViewController" bundle:nil]; + [ofxiPhoneGetGLParentView() addSubview:sliderViewController.view]; + [sliderViewController setAppRef:(id)this]; + sliderViewController.view.frame = CGRectMake(0,getHeight()-43 - 363,getWidth(),363); + //[sliderViewController show:(id)this]; + */ + setAllGUISliders(theGridView.getParams()); - // load preset sequences - loadSequences(); - - // initialise user logging stuff - presetManager.startLoadAll(); - tsc = [[TimedSessionController alloc] init]; - [tsc setAppRef:(id)this]; - eventLogger.init(); - - // timer.init(); - whichInterfaceShowing = BOTH; // but timer will change this - - - if(eventLogger.questionnaireCompleted){ - [bottomTabViewController show:(id)this withSelection:1]; - } - setAllGUISliders(theGridView.getParams()); - // GO - paused = false; - - randomise(); // everyone starts from random position (or where they left off??) - - ofxiPhoneExternalDisplay::mirrorOn(); - - //[sliderViewController show:(id)this]; +} + +void testApp::initialiseMIDI(){ ///////////////////////// // MIDI @@ -182,7 +153,50 @@ ofxMidi::setConnectionListener(this); // END MIDI + +} +//-------------------------------------------------------------- +void testApp::setup(){ + // initilaise + + initialiseVariables(); + initialiseGUIs(); + + // initialise PD + + int ticksPerBuffer = 8; // 8 * 64 = buffer len of 512 + core.setup(2, 1, 44100, ticksPerBuffer); + + // setup OF sound stream + ofSoundStreamSetup(2, 1, this, 44100, ofxPd::blockSize()*ticksPerBuffer, 3); + + tsc = [[TimedSessionController alloc] init]; + [tsc setAppRef:(id)this]; + + //-------------------------------------- + // load stuff + loadSequences(); + + // load presets + presetManager.startLoadAll(); + + eventLogger.startLoadAll(); + //-------------------------------------- + + // now do things that will affect the start up state of the app + + if(eventLogger.questionnaireCompleted){ // then we go into do-what-you-like mode + + freeUseMode(); + }else{ + // then we're in timed session mode + showIntro(); + } + + // GO + paused = false; + eventLogger.logEvent(APP_STARTED); } @@ -351,6 +365,11 @@ // no unOK } //-------------------------------------------------------------- +void testApp::startTimedSession(){ + [tsc startTimer]; + // timer will show alert and set interface +} +//-------------------------------------------------------------- // called from BottomTabViewController iOS segmented thing, also timed session controller void testApp::interfaceSelected(int which){ switch (which){ @@ -394,7 +413,7 @@ float dim = (height-10.0*OFX_UI_GLOBAL_WIDGET_SPACING)/10.0; // LEFT GUI - sliderGUI = new ofxUICanvas(0,160,SLIDER_GUI_WIDTH,getHeight()); + sliderGUI = new ofxUICanvas(10,160,SLIDER_GUI_WIDTH,getHeight()); // Uh.. loop this for(int i = 1; i<=10;i++){