Advertisement
Guest User

Untitled

a guest
Jul 30th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.67 KB | None | 0 0
  1. //////////////////////////////////////////////////////////////// CLASS HOME ////
  2. var Home = function()
  3. {
  4. //-------------------------------------------------------
  5. // Data Home
  6. //-------------------------------------------------------
  7. this.DriverName;
  8. this.device;
  9. this.nameMemmory = "";
  10. this.PrevPage = ["Home"];
  11. this.PrevCounter = 0;
  12. this.Remote = ["Sonos", "Audio", "Radio", "XBOX", "DVD", "TV"];
  13.  
  14. //-------------------------------------------------------
  15. // Home Initialization
  16. //-------------------------------------------------------
  17. function Initialization()
  18. {
  19. // Connect
  20. this.device = IR.GetDevice(this.DriverName);
  21.  
  22. // Next Space
  23. var that = this;
  24.  
  25. // DEFAULT Data
  26. IR.SetVariable("Drivers." + that.DriverName + ".Room", "Home");
  27. IR.SetVariable("Tokens.ModeAuto", 1);
  28. IR.SetVariable("Tokens.ModeOff", 0);
  29. IR.SetVariable("Tokens.ModeHeat", 0);
  30. IR.SetVariable("Tokens.ModeCool", 0);
  31.  
  32. // Show Room
  33. function ShowRoom(name)
  34. {
  35. IR.ShowPopup("Room");
  36. IR.ShowPopup("LeftUpTV");
  37. IR.ShowPopup("Room_Scenario");
  38. IR.ShowPopup("LeftDownSonos");
  39. IR.ShowPopup("hidePopup");
  40.  
  41. if (that.nameMemmory != "Back")
  42. {
  43. that.PrevCounter += 1;
  44. that.PrevPage[that.PrevCounter] = name;
  45. }
  46. that.nameMemmory = "";
  47. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  48.  
  49. if (Think == "no")
  50. {
  51. HouseDO = 0;
  52. }
  53. for(var i = 0; i < that.Remote.length; i++)
  54. {
  55. IR.SetVariable("Drivers." + that.DriverName + "." + that.Remote[i], 0);
  56. }
  57. };
  58.  
  59. // Show Remote
  60. function ShowRemote(name)
  61. {
  62. if (IR.GetVariable("Drivers." + that.DriverName + "." + name) == 0 )
  63. {
  64. IR.ShowPopup(name);
  65. IR.ShowPopup("hideDown");
  66.  
  67. if ((that.nameMemmory != "Back") && (that.PrevCounter < 2))
  68. {
  69. that.PrevCounter += 1;
  70. that.PrevPage[that.PrevCounter] = name;
  71. }
  72. that.nameMemmory = "";
  73. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  74. IR.SetVariable("Drivers." + that.DriverName + ".PrevRoom", that.PrevPage[that.PrevCounter-1]);
  75. for(var i = 0; i < that.Remote.length; i++)
  76. {
  77. IR.SetVariable("Drivers." + that.DriverName + "." + that.Remote[i], 0);
  78. }
  79. IR.SetVariable("Drivers." + that.DriverName + "." + name, 1);
  80. }
  81. else
  82. {
  83. that.PrevCounter -= 1;
  84. ShowRoom(that.PrevPage[that.PrevCounter]);
  85. }
  86. };
  87.  
  88. //-------------------------------------------------------
  89. // Activate function
  90. //-------------------------------------------------------
  91. IR.AddListener(IR.EVENT_CHANNEL_SET, this.device, function(name)
  92. {
  93. // Back
  94. if (name == "Back")
  95. {
  96. that.nameMemmory = name;
  97. name = that.PrevPage[that.PrevCounter-1];
  98. if (that.PrevCounter > 0)
  99. {
  100. that.PrevCounter -=1;
  101. }
  102. else
  103. {
  104. name = "Home"
  105. }
  106. }
  107. // Other
  108. switch(name)
  109. {
  110. case "Home":
  111. if(Think == "yes")
  112. {
  113. IR.ShowPopup("Home_Rooms");
  114. IR.ShowPopup("Home_Photo");
  115. IR.ShowPopup("Home_Scenario");
  116. IR.ShowPopup("Home_Time");
  117. IR.ShowPopup("Home_Weather");
  118.  
  119. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  120.  
  121. that.PrevCounter = 0;
  122. that.nameMemmory = "";
  123.  
  124. HouseDO = 1;
  125. }
  126. break;
  127.  
  128. case "Bedroom one":
  129. ShowRoom(name);
  130. break;
  131.  
  132. case "Bathroom":
  133. ShowRoom(name);
  134. break;
  135.  
  136. case "Kitchen":
  137. ShowRoom(name);
  138. break;
  139.  
  140. case "Kids room":
  141. ShowRoom(name);
  142. break;
  143.  
  144. case "Theater":
  145. ShowRoom(name);
  146. break;
  147.  
  148. case "Garage":
  149. ShowRoom(name);
  150. break;
  151.  
  152. case "Bedroom two":
  153. ShowRoom(name);
  154. break;
  155.  
  156. case "Hall":
  157. ShowRoom(name);
  158. break;
  159.  
  160. case "Entry":
  161. ShowRoom(name);
  162. break;
  163.  
  164. case "Climat":
  165. IR.ShowPopup("GroupClimat_Content");
  166. if (GroupClimat_SelectItems > 0)
  167. {
  168. IR.ShowPopup("GroupClimat_Settings");
  169. }
  170. else
  171. {
  172. IR.ShowPopup("hideRight");
  173. }
  174. IR.ShowPopup("GroupClimat_Down");
  175. IR.ShowPopup("hideOther");
  176. IR.ShowPopup("hidePopup");
  177.  
  178. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  179.  
  180. if (Think == "no")
  181. {
  182. HouseDO = 0;
  183. }
  184. break;
  185.  
  186. case "Lights":
  187. IR.ShowPopup("GroupLight_Content");
  188. IR.ShowPopup("hideOther");
  189. IR.ShowPopup("hidePopup");
  190. IR.ShowPopup("hideRight");
  191. IR.ShowPopup("hideDown");
  192.  
  193. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  194.  
  195. if (Think == "no")
  196. {
  197. HouseDO = 0;
  198. }
  199. break;
  200.  
  201. case "Sound":
  202. IR.ShowPopup("GroupSound_Content");
  203. if (GroupSound_SelectItems > 0)
  204. {
  205. IR.ShowPopup("GroupSound_Settings");
  206. }
  207. else
  208. {
  209. IR.ShowPopup("hideRight");
  210. }
  211. IR.ShowPopup("GroupSound_Down");
  212. IR.ShowPopup("hideOther");
  213. IR.ShowPopup("hidePopup");
  214.  
  215. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  216.  
  217. if (Think == "no")
  218. {
  219. HouseDO = 0;
  220. }
  221. break;
  222.  
  223. case "Cameras":
  224. IR.ShowPopup("GroupCamera_Content");
  225. IR.ShowPopup("CameraView6");
  226. IR.ShowPopup("Camera_Time");
  227. IR.ShowPopup("hideDown");
  228. IR.ShowPopup("hideOther");
  229.  
  230. IR.SetVariable("Drivers." + that.DriverName + ".Room", name);
  231.  
  232. if (Think == "no")
  233. {
  234. HouseDO = 0;
  235. }
  236. break;
  237.  
  238. case "Sonos":
  239. ShowRemote(name);
  240. break;
  241.  
  242. case "XBOX":
  243. ShowRemote(name);
  244. break;
  245.  
  246. case "DVD":
  247. ShowRemote(name);
  248. break;
  249.  
  250. case "TV":
  251. ShowRemote(name);
  252. break;
  253.  
  254. case "Radio":
  255. ShowRemote(name);
  256. break;
  257.  
  258. case "Audio":
  259. ShowRemote(name);
  260. break;
  261. }
  262. }); // End Activate function
  263. }; // End Home Initialization
  264.  
  265. //-------------------------------------------------------
  266. // Public
  267. //-------------------------------------------------------
  268. this.Init = Initialization;
  269.  
  270. }; // End Home Initialization
  271. //////////////////////////////////////////////////////////////////// USER //////
  272. var iRidium = new Home();
  273. iRidium.DriverName = "Home";
  274. iRidium.Init();
  275.  
  276. GroupClimat_Change = [false,false,false,false,false,false,false,false,false,false,false,false,false];
  277. GroupClimat_SelectItems = 0;
  278. _GroupTemp = 0;
  279. NewTemp = [17,17,17,17,17,17,17,17,17,17,17,17,17];
  280.  
  281. GroupSound_Change = [false,false,false,false,false,false,false,false,false,false,false,false,false];
  282. GroupSound_SelectItems = 0;
  283. _GroupSound = 0;
  284. NewSound = [17,17,17,17,17,17,17,17,17,17,17,17,17];
  285. SaveItem = 1;
  286. SaveItemSound = 1;
  287.  
  288. // Color Picker
  289. function ColorPicker()
  290. {
  291. IR.GetItem("Room").GetItem("Item 66").GetState(0).FillColor = IR.GetItem("setColor").GetItem("Item 1").PickColor;
  292. }
  293. // DEFAULT List
  294. IR.AddListener(IR.EVENT_START, 0, function()
  295. {
  296. IR.GetItem("Home_Rooms").GetItem("Item 1").CreateItem(1,1,{});
  297. IR.GetItem("Home_Scenario").GetItem("Item 1").CreateItem(1,1,{});
  298. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(1,1,{});
  299. IR.GetItem("GroupLight_Content").GetItem("Item 1").CreateItem(1,1,{});
  300. IR.GetItem("GroupCamera_Content").GetItem("Item 1").CreateItem(1,1,{});
  301. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(1,1,{});
  302. IR.GetItem("Room_Scenario").GetItem("Item 1").CreateItem(1,1,{});
  303. Sonos_lists();
  304. CreateCameras();
  305. CreateClimat();
  306. CreateSound();
  307. });
  308.  
  309. ////////////////////////////////////////////////////////////////////////////////
  310. // Cameras
  311. function CreateCameras()
  312. {
  313. for(var i = 1; i<9;i++)
  314. {
  315. IR.GetItem("GroupCamera_Content").GetItem("Item 1").CreateItem(i, 1, {});
  316. IR.GetItem("GroupCamera_Content").GetItem("Item 1").CreateItem(i, 3, {Text: "Camera "+i});
  317. }
  318. IR.GetItem("GroupCamera_Content").GetItem("Item 1").CreateItem(1, 1, {X: 8});
  319.  
  320. IR.AddListener(IR.EVENT_ITEM_SELECT, IR.GetItem("GroupCamera_Content").GetItem("Item 1"), function(item, subItem)
  321. {
  322. IR.ShowPopup("CameraView"+item);
  323. IR.ShowPopup("Camera_Time");
  324. for(var i = 1; i<9;i++)
  325. {
  326. IR.GetItem("GroupCamera_Content").GetItem("Item 1").CreateItem(i, 1, {X: 398});
  327. }
  328. IR.GetItem("GroupCamera_Content").GetItem("Item 1").CreateItem(item, 1, {X: 8});
  329. });
  330. };
  331. ////////////////////////////////////////////////////////////////////////////////
  332. // Climat
  333. // Temp Group
  334. function ReloadSelectItem()
  335. {
  336. for(var i = 1; i<13;i++)
  337. {
  338. if (GroupClimat_Change[i] == true)
  339. {
  340. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 9, {Text: IR.GetVariable("Drivers." + "Home" + ".GroupTemp").toFixed(0)+"°"});
  341. IR.SetVariable("Drivers." + "Home" + ".Temp" + i, IR.GetVariable("Drivers." + "Home" + ".GroupTemp"));
  342. }
  343. }
  344. };
  345. // Mode Off Group
  346. function SelectItemOff()
  347. {
  348. for(var i = 1; i<13;i++)
  349. {
  350. if (GroupClimat_Change[i] == true)
  351. {
  352. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 15, {X: 356});
  353. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 16, {X: 1356});
  354. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 17, {X: 1356});
  355. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 18, {X: 1356});
  356. }
  357. }
  358. IR.SetVariable("Drivers." + "Home" + ".ModeOff", 1)
  359. IR.SetVariable("Drivers." + "Home" + ".ModeAuto", 0)
  360. IR.SetVariable("Drivers." + "Home" + ".ModeHeat", 0)
  361. IR.SetVariable("Drivers." + "Home" + ".ModeCool", 0)
  362. };
  363. // Mode Auto Group
  364. function SelectItemAuto()
  365. {
  366. for(var i = 1; i<13;i++)
  367. {
  368. if (GroupClimat_Change[i] == true)
  369. {
  370. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 16, {X: 424});
  371. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 15, {X: 1356});
  372. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 17, {X: 1356});
  373. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 18, {X: 1356});
  374. }
  375. }
  376. IR.SetVariable("Drivers." + "Home" + ".ModeOff", 0)
  377. IR.SetVariable("Drivers." + "Home" + ".ModeAuto", 1)
  378. IR.SetVariable("Drivers." + "Home" + ".ModeHeat", 0)
  379. IR.SetVariable("Drivers." + "Home" + ".ModeCool", 0)
  380. };
  381. // Mode Heat Group
  382. function SelectItemHeat()
  383. {
  384. for(var i = 1; i<13;i++)
  385. {
  386. if (GroupClimat_Change[i] == true)
  387. {
  388. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 17, {X: 492});
  389. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 16, {X: 1356});
  390. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 15, {X: 1356});
  391. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 18, {X: 1356});
  392. }
  393. }
  394. IR.SetVariable("Drivers." + "Home" + ".ModeOff", 0)
  395. IR.SetVariable("Drivers." + "Home" + ".ModeAuto", 0)
  396. IR.SetVariable("Drivers." + "Home" + ".ModeHeat", 1)
  397. IR.SetVariable("Drivers." + "Home" + ".ModeCool", 0)
  398. };
  399. // Mode Cool Group
  400. function SelectItemCool()
  401. {
  402. for(var i = 1; i<13;i++)
  403. {
  404. if (GroupClimat_Change[i] == true)
  405. {
  406. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 18, {X: 560});
  407. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 16, {X: 1356});
  408. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 17, {X: 1356});
  409. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 15, {X: 1356});
  410. }
  411. }
  412. IR.SetVariable("Drivers." + "Home" + ".ModeOff", 0)
  413. IR.SetVariable("Drivers." + "Home" + ".ModeAuto", 0)
  414. IR.SetVariable("Drivers." + "Home" + ".ModeHeat", 0)
  415. IR.SetVariable("Drivers." + "Home" + ".ModeCool", 1)
  416. };
  417.  
  418. // Fan Group
  419. function SelectItemFan()
  420. {
  421. if (IR.GetVariable("Drivers." + "Home" + ".Fan") == 0)
  422. {
  423. for(var i = 1; i<13;i++)
  424. {
  425. if (GroupClimat_Change[i] == true)
  426. {
  427. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 19, {X: 636});
  428. }
  429. }
  430. IR.SetVariable("Drivers." + "Home" + ".Fan", 1)
  431. }
  432. else
  433. {
  434. for(var i = 1; i<13;i++)
  435. {
  436. if (GroupClimat_Change[i] == true)
  437. {
  438. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 19, {X: 1636});
  439. }
  440. }
  441. IR.SetVariable("Drivers." + "Home" + ".Fan", 0)
  442. }
  443. };
  444. // Temp one
  445. function ReloadItem()
  446. {
  447. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(SaveItem, 9, {Text: IR.GetVariable("Drivers." + "Home" + ".Temp" + SaveItem).toFixed(0)+"°"});
  448. };
  449. // Create List and GUI
  450. function CreateClimat()
  451. {
  452. aRooms = ["","","Bedroom one", "Bathroom", "Kids room","","Kitchen", "Entry", "Garage", "","Theater", "Bedroom two", "Hall"];
  453. aFloor = ["","Upper floor","","","","Main floor","","","","Lower floor"];
  454.  
  455. IR.SetVariable("Drivers." + "Home" + ".Fan", 0)
  456. IR.SetVariable("Drivers." + "Home" + ".ModeOff", 1)
  457. for(var i = 1; i<13;i++)
  458. {
  459. if((i == 1) || (i == 5) || (i == 9))
  460. {
  461. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 14, {Text: aFloor[i], X: 8});
  462. }
  463. else
  464. {
  465. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 12, {Text: aRooms[i]});
  466. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 16, {X: 424});
  467. IR.SetVariable("Drivers." + "Home" + ".Temp" + i, Math.floor(Math.random()*17)+15)
  468. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(i, 9, {Text: IR.GetVariable("Drivers." + "Home" + ".Temp" + i).toFixed(0)+"°"});
  469. }
  470. }
  471. IR.AddListener(IR.EVENT_ITEM_SELECT, IR.GetItem("GroupClimat_Content").GetItem("Item 1"), function(item, subItem)
  472. {
  473. IR.Log(subItem)
  474. switch(subItem)
  475. {
  476. case 11:
  477. if (GroupClimat_Change[item] == true)
  478. {
  479. GroupClimat_Change[item] = false;
  480. GroupClimat_SelectItems = GroupClimat_SelectItems - 1;
  481. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 1, {X: -1400});
  482.  
  483. }
  484. else
  485. {
  486. GroupClimat_Change[item] = true;
  487. GroupClimat_SelectItems = GroupClimat_SelectItems + 1;
  488. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 1, {X: 8});
  489.  
  490. _GroupClimat = NewTemp[item-1]; // По последней выбранной
  491.  
  492. }
  493.  
  494. if (GroupClimat_SelectItems == 0)
  495. {
  496. IR.ShowPopup("hideRight");
  497. GroupTemp = 0;
  498. _GroupTemp = 0;
  499. }
  500. else
  501. {
  502. IR.ShowPopup("GroupClimat_Settings");
  503. }
  504.  
  505. IR.SetVariable("Drivers." + "Home" + ".GroupTemp", _GroupClimat);
  506. break;
  507.  
  508. case 2:
  509. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 15, {X: 356});
  510. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 16, {X: 1356});
  511. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 17, {X: 1356});
  512. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 18, {X: 1356});
  513. break;
  514. case 3:
  515. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 15, {X: 1356});
  516. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 16, {X: 424});
  517. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 17, {X: 1356});
  518. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 18, {X: 1356});
  519. break;
  520. case 4:
  521. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 15, {X: 1356});
  522. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 16, {X: 1356});
  523. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 17, {X: 492});
  524. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 18, {X: 1356});
  525. break;
  526. case 5:
  527. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 15, {X: 1356});
  528. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 16, {X: 1356});
  529. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 17, {X: 1356});
  530. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 18, {X: 560});
  531. break;
  532. case 7:
  533. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 19, {X: 636});
  534. break;
  535. case 19:
  536. IR.GetItem("GroupClimat_Content").GetItem("Item 1").CreateItem(item, 19, {X: 1636});
  537. break;
  538. case 8:
  539. IR.ShowPopup("setTemp"+item);
  540. SaveItem = item;
  541. break;
  542. }
  543. });
  544.  
  545. // Select All
  546. IR.AddListener(IR.EVENT_ITEM_RELEASE, IR.GetItem("GroupClimat_Down").GetItem("Item 1"), function(item, subItem)
  547. {
  548. GroupClimat = IR.GetItem("GroupClimat_Content").GetItem("Item 1")
  549.  
  550. for (var i = 1; i<13; i++)
  551. {
  552. if((i == 1) || (i == 5) || (i == 9))
  553. {
  554. //
  555. }
  556. else
  557. {
  558. GroupClimat.CreateItem(i, 1, {X: 8});
  559. GroupClimat_Change[i] = true;
  560. }
  561. }
  562. GroupClimat_SelectItems = 9;
  563. _GroupTemp = NewTemp[8];
  564. IR.ShowPopup("GroupClimat_Settings");
  565. IR.SetVariable("Drivers." + "Home" + ".GroupTemp", _GroupTemp);
  566. });
  567.  
  568. // Deselect All
  569. IR.AddListener(IR.EVENT_ITEM_RELEASE, IR.GetItem("GroupClimat_Down").GetItem("Item 2"), function(item, subItem)
  570. {
  571. GroupClimat = IR.GetItem("GroupClimat_Content").GetItem("Item 1")
  572.  
  573. for (var i = 1; i<13; i++)
  574. {
  575. GroupClimat.CreateItem(i, 1, {X: 1200});
  576. GroupClimat_Change[i] = false;
  577. }
  578. GroupClimat_SelectItems = 0;
  579. _GroupTemp = NewTemp[8];
  580. IR.HidePopup("GroupClimat_Settings");
  581. IR.SetVariable("Drivers." + "Home" + ".GroupTemp", _GroupTemp);
  582. });
  583. }
  584. ////////////////////////////////////////////////////////////////////////////////
  585. // Sound
  586. // On / Off Group
  587. function SelectOff()
  588. {
  589. if (IR.GetVariable("Drivers." + "Home" + ".Off") == 0)
  590. {
  591. for(var i = 1; i<13;i++)
  592. {
  593. if (GroupSound_Change[i] == true)
  594. {
  595. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 11, {X: 257});
  596. }
  597. }
  598. IR.SetVariable("Drivers." + "Home" + ".Off", 1)
  599. }
  600. else
  601. {
  602. for(var i = 1; i<13;i++)
  603. {
  604. if (GroupSound_Change[i] == true)
  605. {
  606. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 11, {X: 1357});
  607. }
  608. }
  609. IR.SetVariable("Drivers." + "Home" + ".Off", 0)
  610. }
  611. };
  612. // Mute Group
  613. function SelectMute()
  614. {
  615. if (IR.GetVariable("Drivers." + "Home" + ".Mute") == 0)
  616. {
  617. for(var i = 1; i<13;i++)
  618. {
  619. if (GroupSound_Change[i] == true)
  620. {
  621. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 12, {X: 671});
  622. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 6, {Value: IR.GetVariable("Drivers." + "Home" + ".GroupSound")});
  623. }
  624. }
  625. IR.SetVariable("Drivers." + "Home" + ".Mute", 1)
  626. }
  627. else
  628. {
  629. for(var i = 1; i<13;i++)
  630. {
  631. if (GroupSound_Change[i] == true)
  632. {
  633. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 12, {X: 1671});
  634. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 6, {Value: IR.GetVariable("Drivers." + "Home" + ".GroupSound")});
  635. }
  636. }
  637. IR.SetVariable("Drivers." + "Home" + ".Mute", 0)
  638. }
  639. };
  640.  
  641. // Slider Sound
  642. function SelectSlider()
  643. {
  644. for(var i = 1; i<13;i++)
  645. {
  646. if (GroupSound_Change[i] == true)
  647. {
  648. if (IR.GetVariable("Drivers." + "Home" + ".GroupSound") == 0)
  649. {
  650. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 12, {X: 671});
  651. }
  652. else
  653. {
  654. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 12, {X: 1671});
  655. }
  656. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 6, {Value: IR.GetVariable("Drivers." + "Home" + ".GroupSound")});
  657. }
  658. }
  659. };
  660. // Sonos set
  661. function SelectSonos()
  662. {
  663. for(var i = 1; i<13;i++)
  664. {
  665. if (GroupSound_Change[i] == true)
  666. {
  667. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 9, {Text: "Sonos"});
  668. }
  669. }
  670. };
  671. // Radio set
  672. function SelectRadio()
  673. {
  674. for(var i = 1; i<13;i++)
  675. {
  676. if (GroupSound_Change[i] == true)
  677. {
  678. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 9, {Text: "Radio"});
  679. }
  680. }
  681. };
  682. // Audio set
  683. function SelectAudio()
  684. {
  685. for(var i = 1; i<13;i++)
  686. {
  687. if (GroupSound_Change[i] == true)
  688. {
  689. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 9, {Text: "Audio"});
  690. }
  691. }
  692. };
  693.  
  694. // Sonos set one
  695. function oneSonos()
  696. {
  697. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(SaveItemSound, 9, {Text: "Sonos"});
  698. IR.HidePopup("GroupSound_setSource" + SaveItemSound);
  699. };
  700. // Radio set one
  701. function oneRadio()
  702. {
  703. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(SaveItemSound, 9, {Text: "Audio"});
  704. IR.HidePopup("GroupSound_setSource" + SaveItemSound);
  705. };
  706. // Audio set one
  707. function oneAudio()
  708. {
  709. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(SaveItemSound, 9, {Text: "Radio"});
  710. IR.HidePopup("GroupSound_setSource" + SaveItemSound);
  711. };
  712. // Create List
  713. function CreateSound()
  714. {
  715. aRooms = ["","","Bedroom one", "Bathroom", "Kids room","","Kitchen", "Entry", "Garage", "","Theater", "Bedroom two", "Hall"];
  716. aFloor = ["","Upper floor","","","","Main floor","","","","Lower floor"];
  717. for(var i = 1; i<13;i++)
  718. {
  719. if((i == 1) || (i == 5) || (i == 9))
  720. {
  721. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 10, {Text: aFloor[i], X: 8});
  722. }
  723. else
  724. {
  725. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 4, {Text: aRooms[i]});
  726. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(i, 6, {Value: Math.floor(Math.random()*85)+15});
  727. }
  728. }
  729. IR.AddListener(IR.EVENT_ITEM_SELECT, IR.GetItem("GroupSound_Content").GetItem("Item 1"), function(item, subItem)
  730. {
  731. switch(subItem)
  732. {
  733. case 5:
  734. IR.ShowPopup("GroupSound_setSource"+item);
  735. SaveItemSound = item;
  736. break;
  737.  
  738. case 7:
  739. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 11, {X: 257});
  740. break;
  741.  
  742. case 11:
  743. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 11, {X: 1357});
  744. break;
  745.  
  746. case 8:
  747. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 12, {X: 671});
  748. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 6, {Value: 0});
  749. break;
  750.  
  751. case 12:
  752. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 12, {X: 1671});
  753. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 6, {Value: 100});
  754. break;
  755.  
  756. case 3:
  757. if (GroupSound_Change[item] == true)
  758. {
  759. GroupSound_Change[item] = false;
  760. GroupSound_SelectItems = GroupSound_SelectItems - 1;
  761. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 1, {X: -1400});
  762.  
  763. }
  764. else
  765. {
  766. GroupSound_Change[item] = true;
  767. GroupSound_SelectItems = GroupSound_SelectItems + 1;
  768. IR.GetItem("GroupSound_Content").GetItem("Item 1").CreateItem(item, 1, {X: 8});
  769.  
  770. _GroupSound = NewSound[item-1]; // По последней выбранной
  771.  
  772. }
  773.  
  774. if (GroupSound_SelectItems == 0)
  775. {
  776. IR.ShowPopup("hideRight");
  777. GroupSound = 0;
  778. _GroupSound = 0;
  779. }
  780. else
  781. {
  782. IR.ShowPopup("GroupSound_Settings");
  783. }
  784.  
  785. IR.SetVariable("Drivers." + "Home" + ".GroupSound", _GroupSound);
  786. break;
  787. }
  788. });
  789.  
  790. // Select All
  791. IR.AddListener(IR.EVENT_ITEM_RELEASE, IR.GetItem("GroupSound_Down").GetItem("Item 1"), function(item, subItem)
  792. {
  793. GroupSound = IR.GetItem("GroupSound_Content").GetItem("Item 1")
  794.  
  795. for (var i = 1; i<13; i++)
  796. {
  797. if((i == 1) || (i == 5) || (i == 9))
  798. {
  799. //
  800. }
  801. else
  802. {
  803. GroupSound.CreateItem(i, 1, {X: 8});
  804. GroupSound_Change[i] = true;
  805. }
  806. }
  807. GroupSound_SelectItems = 9;
  808. _GroupSound = NewSound[8];
  809. IR.ShowPopup("GroupSound_Settings");
  810. IR.SetVariable("Drivers." + "Home" + ".GroupSound", _GroupSound);
  811. });
  812.  
  813. // Deselect All
  814. IR.AddListener(IR.EVENT_ITEM_RELEASE, IR.GetItem("GroupSound_Down").GetItem("Item 2"), function(item, subItem)
  815. {
  816. GroupSound = IR.GetItem("GroupSound_Content").GetItem("Item 1")
  817.  
  818. for (var i = 1; i<13; i++)
  819. {
  820. GroupSound.CreateItem(i, 1, {X: 1200});
  821. GroupSound_Change[i] = false;
  822. }
  823. GroupSound_SelectItems = 0;
  824. _GroupSound = NewSound[8];
  825. IR.HidePopup("GroupSound_Settings");
  826. IR.SetVariable("Drivers." + "Home" + ".GroupSound", _GroupSound);
  827. });
  828. }
  829. ////////////////////////////////////////////////////////////////////////////////
  830. // Заполнение листов соноса
  831. function Sonos_lists()
  832. {
  833. // Инициализация
  834. var listALL = IR.GetItem("Sonos").GetItem("Item 90");
  835. var listQueue = IR.GetItem("Sonos").GetItem("Item 91");
  836.  
  837. // Random Value
  838. var sound = ['The Wall', 'Run Run Run', 'I m Sticking With You', 'Girl You Know Its True', 'The Logical Song', 'Castellorizon', 'Horses in the Sky'];
  839. var artist = ['Osewoudt', 'Red Hot Chili Peppers', 'Foster the People', 'The Beatles', 'The Roling Stones', 'Michaelangelo ', 'The Chemical Brothers'];
  840.  
  841. // Queue + All List
  842. for(var i = 0; i < 15; ++i)
  843. {
  844. x = sound[Math.floor(Math.random()*5)];
  845. y = artist[Math.floor(Math.random()*5)];
  846.  
  847. listQueue.CreateItem(i + 1, 2, { Text: x });
  848. listQueue.CreateItem(i + 1, 3, { Text: y});
  849. listALL.CreateItem(i + 1, 2, { Text: x });
  850. listALL.CreateItem(i + 1, 3, { Text: y});
  851. if (i == 0)
  852. {
  853. listALL.CreateItem(i + 1, 4, { X: 0, Text: "A" });
  854. listALL.CreateItem(i + 1, 2, { X: 1000 });
  855. listALL.CreateItem(i + 1, 3, { X: 1000 });
  856. listALL.CreateItem(i + 1, 1, { X: 1000 });
  857. }
  858. if (i == 5)
  859. {
  860. listALL.CreateItem(i + 1, 4, { X: 0, Text: "B" });
  861. listALL.CreateItem(i + 1, 2, { X: 1000 });
  862. listALL.CreateItem(i + 1, 3, { X: 1000 });
  863. listALL.CreateItem(i + 1, 1, { X: 1000 });
  864. }
  865. if (i == 11)
  866. {
  867. listALL.CreateItem(i + 1, 4, { X: 0, Text: "C" });
  868. listALL.CreateItem(i + 1, 2, { X: 1000 });
  869. listALL.CreateItem(i + 1, 3, { X: 1000 });
  870. listALL.CreateItem(i + 1, 1, { X: 1000 });
  871. }
  872. }
  873. }
  874. ////////////////////////////////////////////////////////////////////////////////
  875. // Настройки анимации
  876. var timer1= 0;
  877. var timer2= 0;
  878. var TimeAnimation = 400; // скорость анимации
  879. var StartX = 0; // Начальное x попапа
  880. var EndX = 0; // На сколько переместить попап
  881. var HouseDO = -1; /* Флаг для попапа навигации при главной странице дома кнопки назад нет, во всех отсальных она есть,
  882. и флаг меняется только когда вызывается функциия Show House на 1, с главной можно уйти либо на доплнения либо на настройку комнаты
  883. в этих функция будет присваиваться 0 и попап будет перемещаться */
  884. var Think = "no";
  885. var NavPopup = IR.GetItem("Back");
  886. ////////////////////////////////////////////////////////////////////////////////
  887. // Твинер замедление под конец
  888. function delta4(progress) {
  889. return Math.cos((1-progress) * Math.PI/2);
  890. }
  891. ////////////////////////////////////////////////////////////////////////////////
  892. // Анимация
  893. IR.AddListener(IR.EVENT_WORK,0,function(time)
  894. {
  895. if (HouseDO == 0)
  896. {
  897. timer1+=time;
  898.  
  899. if (timer1 <= TimeAnimation )
  900. {
  901. NavPopup.X = -61 + 61* delta4(timer1/TimeAnimation);
  902. }
  903. else
  904. {
  905. // В твинере есть неточность, поэтому добиваем
  906. NavPopup.X = 0;
  907. // Очистка
  908. timer1 = 0;
  909. HouseDO = -1;
  910. Think = "yes";
  911. }
  912. }
  913. if (HouseDO == 1)
  914. {
  915. timer2+=time;
  916. if (timer2 <= TimeAnimation )
  917. {
  918. NavPopup.X = (-61)* delta4(timer2/TimeAnimation);
  919. }
  920. else
  921. {
  922. // В твинере есть неточность, поэтому добиваем
  923. NavPopup.X = -61;
  924. // Очистка
  925. timer2 = 0;
  926. HouseDO = -1;
  927. Think = "no";
  928. }
  929. }
  930. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement