-
Notifications
You must be signed in to change notification settings - Fork 0
/
OvenViewModel.js
84 lines (68 loc) · 2.22 KB
/
OvenViewModel.js
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
73
74
75
76
77
78
79
80
81
82
83
84
/// <reference path="Lib/knockout-3.1.0.js" />
/// <reference path="Timers.js" />
/// <reference path="StatusProperties.js" />
/// <reference path="UserInterface.js" />
/// <reference path="Subscriptions.js" />
/// <reference path="OvenManager.js" />
/// <reference path="TemperatureManagement.js" />
/// <reference path="SoundManagement.js" />
/// <reference path="TimerManagement.js" />
/// <reference path="OvenProgramManagement.js" />
function OvenViewModel(soundEnabled, blinkingEnabled) {
var self = this;
self.SoundEnabled = soundEnabled;
self.BlinkingEnabled = blinkingEnabled;
//Expand from external files
Timers(self);
StatusProperties(self);
OvenManager(self);
TemperatureManagement(self);
SoundManagement(self);
TimerManagement(self);
OvenProgramManagement(self);
UserInterface(self);
Subscriptions(self);
self.ToggleLight = function () {
self.LightIsOn(!self.LightIsOn());
}
self.TurnOvenOn = function () {
self.TopDisplayFunction(self.TargetTemperature);
self.OvenIsOn(true);
}
self.TurnOvenOff = function () {
//Turn everything off
self.SetDefaults();
self.TopDisplayFunction(null);
}
//Time Dilation - Start
self.IncreaseTimeDilation = function () {
self.SetTimeDilation(self.TimeDilation() * 2);
};
self.DecreaseTimeDilation = function () {
self.SetTimeDilation(self.TimeDilation() / 2);
};
self.SetTimeDilation = function (newValue) {
self.Log(newValue);
if (newValue >= self.MaxTimeDilation) //Ensure that we do not go above our max target
{
self.TimeDilation(self.MaxTimeDilation);
return;
}
else if (newValue <= self.MinTimeDilation) //Ensure that we do not go below min target
{
self.TimeDilation(self.MinTimeDilation);
return;
}
self.Log(newValue);
self.TimeDilation(newValue);
};
self.LogFunction = console.log; //null;
self.Log = function (entry) {
if (self.LogFunction !== null)
self.LogFunction(entry);
//console.log(entry);
};
//Set defaults
self.SetDefaults();
return self;
};