author | Ryan Willoughby <ryan.willoughby@nitobi.com> |
Tue, 06 Jul 2010 11:31:19 -0700 | |
changeset 0 | 54063d8b0412 |
permissions | -rwxr-xr-x |
0
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
1 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
2 |
* This class provides access to the device orientation. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
3 |
* @constructor |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
4 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
5 |
function Orientation() { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
6 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
7 |
* The current orientation, or null if the orientation hasn't changed yet. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
8 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
9 |
this.currentOrientation = null; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
10 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
11 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
12 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
13 |
* Set the current orientation of the phone. This is called from the device automatically. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
14 |
* |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
15 |
* When the orientation is changed, the DOMEvent \c orientationChanged is dispatched against |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
16 |
* the document element. The event has the property \c orientation which can be used to retrieve |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
17 |
* the device's current orientation, in addition to the \c Orientation.currentOrientation class property. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
18 |
* |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
19 |
* @param {Number} orientation The orientation to be set |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
20 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
21 |
Orientation.prototype.setOrientation = function(orientation) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
22 |
if (orientation == this.currentOrientation) |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
23 |
return; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
24 |
var old = this.currentOrientation; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
25 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
26 |
this.currentOrientation = orientation; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
27 |
var e = document.createEvent('Events'); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
28 |
e.initEvent('orientationChanged', 'false', 'false'); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
29 |
e.orientation = orientation; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
30 |
e.oldOrientation = old; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
31 |
document.dispatchEvent(e); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
32 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
33 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
34 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
35 |
* Asynchronously aquires the current orientation. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
36 |
* @param {Function} successCallback The function to call when the orientation |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
37 |
* is known. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
38 |
* @param {Function} errorCallback The function to call when there is an error |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
39 |
* getting the orientation. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
40 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
41 |
Orientation.prototype.getCurrentOrientation = function(successCallback, errorCallback) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
42 |
// If the orientation is available then call success |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
43 |
// If the orientation is not available then call error |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
44 |
try { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
45 |
if (!this.serviceObj) |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
46 |
this.serviceObj = this.getServiceObj(); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
47 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
48 |
if (this.serviceObj == null) |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
49 |
errorCallback({ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
50 |
name: "DeviceErr", |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
51 |
message: "Could not initialize service object" |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
52 |
}); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
53 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
54 |
//get the sensor channel |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
55 |
var SensorParams = { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
56 |
SearchCriterion: "Orientation" |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
57 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
58 |
var returnvalue = this.serviceObj.ISensor.FindSensorChannel(SensorParams); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
59 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
60 |
var error = returnvalue["ErrorCode"]; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
61 |
var errmsg = returnvalue["ErrorMessage"]; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
62 |
if (!(error == 0 || error == 1012)) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
63 |
var ex = { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
64 |
name: "Unable to find Sensor Channel: " + error, |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
65 |
message: errmsg |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
66 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
67 |
errorCallback(ex); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
68 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
69 |
var channelInfoMap = returnvalue["ReturnValue"][0]; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
70 |
var criteria = { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
71 |
ChannelInfoMap: channelInfoMap, |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
72 |
ListeningType: "ChannelData" |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
73 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
74 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
75 |
if (typeof(successCallback) != 'function') |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
76 |
successCallback = function(){ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
77 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
78 |
if (typeof(errorCallback) != 'function') |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
79 |
errorCallback = function(){ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
80 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
81 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
82 |
this.success_callback = successCallback; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
83 |
this.error_callback = errorCallback; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
84 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
85 |
//create a closure to persist this instance of orientation object into the RegisterForNofication callback |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
86 |
var obj = this; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
87 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
88 |
// TODO: this call crashes WRT, but there is no other way to read the orientation sensor |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
89 |
// http://discussion.forum.nokia.com/forum/showthread.php?t=182151&highlight=memory+leak |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
90 |
this.serviceObj.ISensor.RegisterForNotification(criteria, function(transId, eventCode, result){ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
91 |
var criteria = { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
92 |
TransactionID: transId |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
93 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
94 |
try { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
95 |
//var orientation = result.ReturnValue.DeviceOrientation; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
96 |
obj.serviceObj.ISensor.Cancel(criteria); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
97 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
98 |
var orientation = null; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
99 |
switch (result.ReturnValue.DeviceOrientation) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
100 |
case "DisplayUpwards": orientation = DisplayOrientation.FACE_UP; break; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
101 |
case "DisplayDownwards": orientation = DisplayOrientation.FACE_DOWN; break; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
102 |
case "DisplayUp": orientation = DisplayOrientation.PORTRAIT; break; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
103 |
case "DisplayDown": orientation = DisplayOrientation.REVERSE_PORTRAIT; break; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
104 |
case "DisplayRightUp": orientation = DisplayOrientation.LANDSCAPE_RIGHT_UP; break; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
105 |
case "DisplayLeftUp": orientation = DisplayOrientation.LANDSCAPE_LEFT_UP; break; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
106 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
107 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
108 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
109 |
obj.setOrientation(orientation); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
110 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
111 |
obj.success_callback(orientation); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
112 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
113 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
114 |
catch (ex) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
115 |
obj.serviceObj.ISensor.Cancel(criteria); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
116 |
obj.error_callback(ex); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
117 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
118 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
119 |
}); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
120 |
} catch (ex) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
121 |
errorCallback({ name: "OrientationError", message: ex.name + ": " + ex.message }); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
122 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
123 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
124 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
125 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
126 |
* Asynchronously aquires the orientation repeatedly at a given interval. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
127 |
* @param {Function} successCallback The function to call each time the orientation |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
128 |
* data is available. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
129 |
* @param {Function} errorCallback The function to call when there is an error |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
130 |
* getting the orientation data. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
131 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
132 |
Orientation.prototype.watchOrientation = function(successCallback, errorCallback, options) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
133 |
// Invoke the appropriate callback with a new Position object every time the implementation |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
134 |
// determines that the position of the hosting device has changed. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
135 |
this.getCurrentOrientation(successCallback, errorCallback); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
136 |
var frequency = (options != undefined)? options.frequency : 1000; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
137 |
return setInterval(function() { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
138 |
navigator.orientation.getCurrentOrientation(successCallback, errorCallback); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
139 |
}, frequency); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
140 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
141 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
142 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
143 |
* Clears the specified orientation watch. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
144 |
* @param {String} watchId The ID of the watch returned from #watchOrientation. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
145 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
146 |
Orientation.prototype.clearWatch = function(watchId) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
147 |
clearInterval(watchId); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
148 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
149 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
150 |
//gets the Acceleration Service Object from WRT |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
151 |
Orientation.prototype.getServiceObj = function() { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
152 |
var so; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
153 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
154 |
try { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
155 |
so = device.getServiceObject("Service.Sensor", "ISensor"); |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
156 |
} catch (ex) { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
157 |
throw { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
158 |
name: "DeviceError", |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
159 |
message: ex.name + ": " + ex.message |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
160 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
161 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
162 |
return so; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
163 |
}; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
164 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
165 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
166 |
/** |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
167 |
* This class encapsulates the possible orientation values. |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
168 |
* @constructor |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
169 |
*/ |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
170 |
function DisplayOrientation() { |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
171 |
this.code = null; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
172 |
this.message = ""; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
173 |
} |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
174 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
175 |
DisplayOrientation.PORTRAIT = 0; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
176 |
DisplayOrientation.REVERSE_PORTRAIT = 1; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
177 |
DisplayOrientation.LANDSCAPE_LEFT_UP = 2; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
178 |
DisplayOrientation.LANDSCAPE_RIGHT_UP = 3; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
179 |
DisplayOrientation.FACE_UP = 4; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
180 |
DisplayOrientation.FACE_DOWN = 5; |
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
181 |
|
54063d8b0412
initial commit of PhoneGap WRT framework, licensing and test code
Ryan Willoughby <ryan.willoughby@nitobi.com>
parents:
diff
changeset
|
182 |
if (typeof navigator.orientation == "undefined") navigator.orientation = new Orientation(); |