Mercurial > hg > soniczoomios
changeset 42:3d627dce8bf0
Tidied up startup logic.
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Wed, 17 Apr 2013 13:44:05 +0100 |
parents | 79c129e500e1 |
children | b91a1859829a |
files | HelpViewController.xib TopButtonViewController.xib UsernameAlertViewController.h UsernameAlertViewController.mm eventLogger.h eventLogger.mm testApp.h testApp.mm |
diffstat | 8 files changed, 235 insertions(+), 216 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ <array key="IBDocument.IntegratedClassDependencies"> <string>IBProxyObject</string> <string>IBUIButton</string> - <string>IBUITextView</string> + <string>IBUILabel</string> <string>IBUIView</string> </array> <array key="IBDocument.PluginDependencies"> @@ -36,105 +36,12 @@ <reference key="NSNextResponder"/> <int key="NSvFlags">292</int> <array class="NSMutableArray" key="NSSubviews"> - <object class="IBUITextView" id="992119782"> - <reference key="NSNextResponder" ref="766721923"/> - <int key="NSvFlags">274</int> - <string key="NSFrameSize">{768, 933}</string> - <reference key="NSSuperview" ref="766721923"/> - <reference key="NSWindow"/> - <reference key="NSNextKeyView" ref="519426224"/> - <string key="NSReuseIdentifierKey">_NS:9</string> - <object class="NSColor" key="IBUIBackgroundColor" id="972792113"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MCAwIDAAA</bytes> - </object> - <bool key="IBUIClipsSubviews">YES</bool> - <bool key="IBUIMultipleTouchEnabled">YES</bool> - <string key="targetRuntimeIdentifier">IBIPadFramework</string> - <bool key="IBUIShowsHorizontalScrollIndicator">NO</bool> - <bool key="IBUIUsesAttributedText">YES</bool> - <object class="NSAttributedString" key="IBUIAttributedText"> - <string type="base64-UTF8" key="NSString">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</string> - <array class="NSMutableArray" key="NSAttributes"> - <dictionary> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MC4zMzgyNjY5OTg0IDAuOTA1MzMyMjM5OSAxAA</bytes> - </object> - <object class="NSFont" key="NSFont" id="897351317"> - <string key="NSName">Helvetica</string> - <double key="NSSize">15</double> - <int key="NSfFlags">16</int> - </object> - <object class="NSMutableParagraphStyle" key="NSParagraphStyle" id="310792247"> - <nil key="NSTabStops"/> - </object> - </dictionary> - <dictionary> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MC4zMzcyNTQ5MDIgMC45MDU4ODIzNTI5IDEAA</bytes> - </object> - <reference key="NSFont" ref="897351317"/> - <reference key="NSParagraphStyle" ref="310792247"/> - </dictionary> - </array> - <object class="NSMutableData" key="NSAttributeInfo"> - <bytes key="NS.bytes">zQ0AwAEB+wIAA</bytes> - </object> - </object> - <bool key="IBUIEditable">NO</bool> - <object class="IBUITextInputTraits" key="IBUITextInputTraits"> - <int key="IBUIAutocapitalizationType">2</int> - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> - </object> - </object> <object class="IBUIButton" id="519426224"> <reference key="NSNextResponder" ref="766721923"/> <int key="NSvFlags">292</int> <string key="NSFrame">{{319, 941}, {130, 44}}</string> <reference key="NSSuperview" ref="766721923"/> <reference key="NSWindow"/> - <reference key="NSNextKeyView"/> <string key="NSReuseIdentifierKey">_NS:9</string> <bool key="IBUIOpaque">NO</bool> <string key="targetRuntimeIdentifier">IBIPadFramework</string> @@ -164,12 +71,89 @@ <int key="NSfFlags">16</int> </object> </object> + <object class="IBUILabel" id="623791900"> + <reference key="NSNextResponder" ref="766721923"/> + <int key="NSvFlags">292</int> + <string key="NSFrame">{{64, 53}, {640, 872}}</string> + <reference key="NSSuperview" ref="766721923"/> + <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="519426224"/> + <string key="NSReuseIdentifierKey">_NS:9</string> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <int key="IBUIContentMode">7</int> + <bool key="IBUIUserInteractionEnabled">NO</bool> + <string key="targetRuntimeIdentifier">IBIPadFramework</string> + <object class="NSMutableString" key="IBUIText"> + <bytes key="NS.bytes">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</bytes> + </object> + <object class="NSColor" key="IBUITextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAxIDAuOTc2NDI2Mjc5OAA</bytes> + </object> + <nil key="IBUIHighlightedColor"/> + <int key="IBUIBaselineAdjustment">0</int> + <int key="IBUINumberOfLines">300</int> + <object class="IBUIFontDescription" key="IBUIFontDescription"> + <int key="type">1</int> + <double key="pointSize">16</double> + </object> + <object class="NSFont" key="IBUIFont"> + <string key="NSName">Helvetica</string> + <double key="NSSize">16</double> + <int key="NSfFlags">16</int> + </object> + <bool key="IBUIAdjustsFontSizeToFit">NO</bool> + <double key="preferredMaxLayoutWidth">640</double> + </object> </array> <string key="NSFrameSize">{768, 1024}</string> <reference key="NSSuperview"/> <reference key="NSWindow"/> - <reference key="NSNextKeyView" ref="992119782"/> - <reference key="IBUIBackgroundColor" ref="972792113"/> + <reference key="NSNextKeyView" ref="623791900"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDAAA</bytes> + </object> <bool key="IBUIClearsContextBeforeDrawing">NO</bool> <object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics"> <string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string> @@ -235,22 +219,21 @@ <reference key="object" ref="766721923"/> <array class="NSMutableArray" key="children"> <reference ref="519426224"/> - <reference ref="992119782"/> + <reference ref="623791900"/> </array> <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> - <int key="objectID">4</int> - <reference key="object" ref="992119782"/> - <array class="NSMutableArray" key="children"/> - <reference key="parent" ref="766721923"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">14</int> <reference key="object" ref="519426224"/> <array class="NSMutableArray" key="children"/> <reference key="parent" ref="766721923"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">26</int> + <reference key="object" ref="623791900"/> + <reference key="parent" ref="766721923"/> + </object> </array> </object> <dictionary class="NSMutableDictionary" key="flattenedProperties"> @@ -260,13 +243,13 @@ <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="14.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> - <string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="26.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> </dictionary> <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/> <nil key="activeLocalization"/> <dictionary class="NSMutableDictionary" key="localizations"/> <nil key="sourceID"/> - <int key="maxID">24</int> + <int key="maxID">26</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <array class="NSMutableArray" key="referencedPartialClassDescriptions">
--- 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 @@ <object class="IBUISwitch" id="150228020"> <reference key="NSNextResponder" ref="358683122"/> <int key="NSvFlags">-2147483356</int> - <string key="NSFrame">{{106, 9}, {94, 27}}</string> + <string key="NSFrame">{{108, 9}, {94, 27}}</string> <reference key="NSSuperview" ref="358683122"/> <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="459236656"/> @@ -71,10 +71,11 @@ <int key="IBUIStyle">1</int> <reference key="IBUIToolbar" ref="358683122"/> </object> - <object class="IBUIBarButtonItem" id="1052071507"> + <object class="IBUIBarButtonItem" id="101764627"> <string key="targetRuntimeIdentifier">IBIPadFramework</string> + <float key="IBUIWidth">59</float> <reference key="IBUIToolbar" ref="358683122"/> - <int key="IBUISystemItemIdentifier">5</int> + <int key="IBUISystemItemIdentifier">6</int> </object> <object class="IBUIBarButtonItem" id="1056681435"> <string key="targetRuntimeIdentifier">IBIPadFramework</string> @@ -110,6 +111,11 @@ <int key="IBUIStyle">1</int> <reference key="IBUIToolbar" ref="358683122"/> </object> + <object class="IBUIBarButtonItem" id="1052071507"> + <string key="targetRuntimeIdentifier">IBIPadFramework</string> + <reference key="IBUIToolbar" ref="358683122"/> + <int key="IBUISystemItemIdentifier">5</int> + </object> <object class="IBUIBarButtonItem" id="189059998"> <string key="IBUITitle">Lock X</string> <string key="targetRuntimeIdentifier">IBIPadFramework</string> @@ -138,9 +144,10 @@ <object class="IBUILabel" id="459236656"> <reference key="NSNextResponder" ref="766721923"/> <int key="NSvFlags">-2147483356</int> - <string key="NSFrame">{{60, 11}, {59, 21}}</string> + <string key="NSFrame">{{59, 11}, {59, 21}}</string> <reference key="NSSuperview" ref="766721923"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> <string key="NSReuseIdentifierKey">_NS:9</string> <bool key="IBUIOpaque">NO</bool> <bool key="IBUIClipsSubviews">YES</bool> @@ -393,7 +400,6 @@ <reference ref="680653375"/> <reference ref="528026433"/> <reference ref="924591997"/> - <reference ref="1052071507"/> <reference ref="379344923"/> <reference ref="898331149"/> <reference ref="180077124"/> @@ -402,6 +408,8 @@ <reference ref="552018169"/> <reference ref="996249183"/> <reference ref="1056681435"/> + <reference ref="1052071507"/> + <reference ref="101764627"/> </array> <reference key="parent" ref="766721923"/> </object> @@ -456,11 +464,6 @@ <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> - <int key="objectID">40</int> - <reference key="object" ref="1052071507"/> - <reference key="parent" ref="358683122"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">35</int> <reference key="object" ref="319053509"/> <reference key="parent" ref="0"/> @@ -488,6 +491,16 @@ <reference key="object" ref="459236656"/> <reference key="parent" ref="766721923"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">54</int> + <reference key="object" ref="1052071507"/> + <reference key="parent" ref="358683122"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">55</int> + <reference key="object" ref="101764627"/> + <reference key="parent" ref="358683122"/> + </object> </array> </object> <dictionary class="NSMutableDictionary" key="flattenedProperties"> @@ -506,19 +519,20 @@ <string key="33.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="35.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> - <string key="40.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="44.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="46.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="54.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="55.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> <string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> </dictionary> <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/> <nil key="activeLocalization"/> <dictionary class="NSMutableDictionary" key="localizations"/> <nil key="sourceID"/> - <int key="maxID">52</int> + <int key="maxID">55</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <array class="NSMutableArray" key="referencedPartialClassDescriptions">
--- 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 <UIAlertViewDelegate, UITextFieldDelegate> @property (strong,nonatomic) UIAlertView * alert; +@property (nonatomic, assign) id theOFAppRef; -(void)showUserNamePrompt; +-(void)setAppRef:(id)theAppRef; + @end
--- 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(); }
--- 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<int> 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);
--- 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){
--- 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();
--- 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++){