2424#include " PhilipsHueEntertainmentController.h"
2525#include " RGBController_PhilipsHue.h"
2626#include " RGBController_PhilipsHueEntertainment.h"
27- #include " SettingsManager .h"
27+ #include " PhilipsHueSettingsHandler .h"
2828
2929/* *****************************************************************************************\
3030* *
3636
3737void DetectPhilipsHueControllers ()
3838{
39- json hue_settings;
39+ PhilipsHueSettingsHandler hue_settings;
4040
4141 /* -------------------------------------------------*\
4242 | Create an HTTP handler |
@@ -47,11 +47,6 @@ void DetectPhilipsHueControllers()
4747 using SystemHttpHandler = hueplusplus::LinHttpHandler;
4848#endif
4949
50- /* -------------------------------------------------*\
51- | Get Philips Hue settings from settings manager |
52- \*-------------------------------------------------*/
53- hue_settings = ResourceManager::get ()->GetSettingsManager ()->GetSettings (" PhilipsHueDevices" );
54-
5550 /* -------------------------------------------------*\
5651 | Create a finder and find bridges |
5752 \*-------------------------------------------------*/
@@ -62,24 +57,14 @@ void DetectPhilipsHueControllers()
6257 | If no bridges were detected, manually add bridge |
6358 | IP and MAC (need to get these from file) |
6459 \*-------------------------------------------------*/
65- if (bridges. empty () )
60+ if (hue_settings. GetBridgeCount () > 0 )
6661 {
67- if (hue_settings.contains (" bridges" ))
68- {
69- hueplusplus::BridgeFinder::BridgeIdentification ident;
62+ hueplusplus::BridgeFinder::BridgeIdentification ident;
7063
71- if (hue_settings[" bridges" ][0 ].contains (" ip" ))
72- {
73- ident.ip = hue_settings[" bridges" ][0 ][" ip" ];
74- }
75-
76- if (hue_settings[" bridges" ][0 ].contains (" mac" ))
77- {
78- ident.mac = hue_settings[" bridges" ][0 ][" mac" ];
79- }
64+ ident.ip = hue_settings.GetBridgeIP (0 );
65+ ident.mac = hue_settings.GetBridgeMAC (0 );
8066
81- bridges.push_back (ident);
82- }
67+ bridges.push_back (ident);
8368 }
8469
8570 /* -------------------------------------------------*\
@@ -95,22 +80,22 @@ void DetectPhilipsHueControllers()
9580 /* -------------------------------------------------*\
9681 | Check if a saved username exists |
9782 \*-------------------------------------------------*/
98- if (hue_settings.contains ( " bridges " ) )
83+ if (hue_settings.GetBridgeCount () > 0 )
9984 {
10085 /* -------------------------------------------------*\
10186 | Add the username if it exists |
10287 \*-------------------------------------------------*/
103- if (hue_settings[ " bridges " ][ 0 ]. contains ( " username " ))
88+ if (hue_settings. BridgeHasUsername ( 0 ))
10489 {
105- finder.addUsername (bridges[0 ].mac , hue_settings[ " bridges " ][ 0 ][ " username " ] );
90+ finder.addUsername (bridges[0 ].mac , hue_settings. GetBridgeUsername ( 0 ) );
10691 }
10792
10893 /* -------------------------------------------------*\
10994 | Add the client key if it exists |
11095 \*-------------------------------------------------*/
111- if (hue_settings[ " bridges " ][ 0 ]. contains ( " clientkey " ))
96+ if (hue_settings. BridgeHasClientKey ( 0 ))
11297 {
113- finder.addClientKey (bridges[0 ].mac , hue_settings[ " bridges " ][ 0 ][ " clientkey " ] );
98+ finder.addClientKey (bridges[0 ].mac , hue_settings. GetBridgeClientKey ( 0 ) );
11499 }
115100 }
116101
@@ -134,11 +119,11 @@ void DetectPhilipsHueControllers()
134119 bool use_entertainment = false ;
135120 bool auto_connect = false ;
136121
137- if (hue_settings.contains ( " bridges " ) )
122+ if (hue_settings.GetBridgeCount () > 0 )
138123 {
139- if (hue_settings[ " bridges " ][ 0 ]. contains ( " username " ))
124+ if (hue_settings. BridgeHasUsername ( 0 ))
140125 {
141- if (hue_settings[ " bridges " ][ 0 ][ " username " ] != bridge.getUsername ())
126+ if (hue_settings. GetBridgeUsername ( 0 ) != bridge.getUsername ())
142127 {
143128 save_settings = true ;
144129 }
@@ -148,9 +133,9 @@ void DetectPhilipsHueControllers()
148133 save_settings = true ;
149134 }
150135
151- if (hue_settings[ " bridges " ][ 0 ]. contains ( " clientkey " ))
136+ if (hue_settings. BridgeHasClientKey ( 0 ))
152137 {
153- if (hue_settings[ " bridges " ][ 0 ][ " clientkey " ] != bridge.getClientKey ())
138+ if (hue_settings. GetBridgeClientKey ( 0 ) != bridge.getClientKey ())
154139 {
155140 use_entertainment = true ;
156141 save_settings = true ;
@@ -167,28 +152,18 @@ void DetectPhilipsHueControllers()
167152 \*-------------------------------------------------*/
168153 if (save_settings)
169154 {
170- hue_settings[" bridges" ][0 ][" username" ] = bridge.getUsername ();
171- hue_settings[" bridges" ][0 ][" clientkey" ] = bridge.getClientKey ();
172- hue_settings[" bridges" ][0 ][" entertainment" ] = use_entertainment;
173- hue_settings[" bridges" ][0 ][" autoconnect" ] = auto_connect;
174-
175- ResourceManager::get ()->GetSettingsManager ()->SetSettings (" PhilipsHueDevices" , hue_settings);
176-
177- ResourceManager::get ()->GetSettingsManager ()->SaveSettings ();
155+ hue_settings.SetBridgeUsername (0 , bridge.getUsername ());
156+ hue_settings.SetBridgeClientKey (0 , bridge.getClientKey ());
157+ hue_settings.SetBridgeUseEntertainment (0 , use_entertainment);
158+ hue_settings.SetBridgeAutoconnect (0 , auto_connect);
159+ hue_settings.SaveSettings ();
178160 }
179161
180162 /* -------------------------------------------------*\
181- | Get entertainment mode settings |
163+ | Get entertainment mode settings |
182164 \*-------------------------------------------------*/
183- if (hue_settings[" bridges" ][0 ].contains (" entertainment" ))
184- {
185- use_entertainment = hue_settings[" bridges" ][0 ][" entertainment" ];
186- }
187-
188- if (hue_settings[" bridges" ][0 ].contains (" autoconnect" ))
189- {
190- auto_connect = hue_settings[" bridges" ][0 ][" autoconnect" ];
191- }
165+ use_entertainment = hue_settings.GetBridgeUseEntertainment (0 );
166+ auto_connect = hue_settings.GetBridgeAutoconnect (0 );
192167
193168 /* -------------------------------------------------*\
194169 | Get all groups from the bridge |
0 commit comments