Commit ec62511413e83ebf8bab64e33142a77e61bd9ba8
Committed by
Moritz Wirger
1 parent
ea867228
Update documentation for changed light access.
Showing
3 changed files
with
38 additions
and
18 deletions
README.md
| @@ -61,15 +61,15 @@ hueplusplus::Hue bridge("192.168.2.102", 80, "<username>", handler); | @@ -61,15 +61,15 @@ hueplusplus::Hue bridge("192.168.2.102", 80, "<username>", handler); | ||
| 61 | 61 | ||
| 62 | ### Controlling lights | 62 | ### Controlling lights |
| 63 | If you have your Bridge all set up, you can now control its lights. | 63 | If you have your Bridge all set up, you can now control its lights. |
| 64 | -For that create a new HueLight object and call getLight(\<id\>) on your bridge object to get a reference to a specific light, where id | 64 | +For that create a new HueLight object and call lights().get(\<id\>) on your bridge object to get a reference to a specific light, where id |
| 65 | is the id of the light set internally by the Hue Bridge. | 65 | is the id of the light set internally by the Hue Bridge. |
| 66 | ```C++ | 66 | ```C++ |
| 67 | -hueplusplus::HueLight light1 = bridge.getLight(1); | 67 | +hueplusplus::HueLight light1 = bridge.lights().get(1); |
| 68 | ``` | 68 | ``` |
| 69 | If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, | 69 | If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, |
| 70 | -you can get a vector containing them by calling getAllLights() on your bridge object. If no lights are found the vector will be empty. | 70 | +you can get a vector containing them by calling getAll(). If no lights are found the vector will be empty. |
| 71 | ```C++ | 71 | ```C++ |
| 72 | -std::vector<std::reference_wrapper<hueplusplus::HueLight>> lights = bridge.getAllLights(); | 72 | +std::vector<std::reference_wrapper<hueplusplus::HueLight>> lights = bridge.lights().getAll(); |
| 73 | ``` | 73 | ``` |
| 74 | If you now want to control a light, call a specific function of it. | 74 | If you now want to control a light, call a specific function of it. |
| 75 | ```C++ | 75 | ```C++ |
doc/markdown/Mainpage.md
| @@ -57,15 +57,15 @@ hueplusplus::Hue bridge("192.168.2.102", 80, "<username>", handler); | @@ -57,15 +57,15 @@ hueplusplus::Hue bridge("192.168.2.102", 80, "<username>", handler); | ||
| 57 | 57 | ||
| 58 | ### Controlling lights | 58 | ### Controlling lights |
| 59 | If you have your Bridge all set up, you can now control its lights. | 59 | If you have your Bridge all set up, you can now control its lights. |
| 60 | -For that create a new HueLight object and call [getLight(\<id\>)](@ref hueplusplus::Hue::getLight) on your bridge object to get a reference to a specific light, where id | 60 | +For that create a new HueLight object and call [lights().get(\<id\>)](@ref hueplusplus::ResourceList::get) on your bridge object to get a reference to a specific light, where id |
| 61 | is the id of the light set internally by the Hue Bridge. | 61 | is the id of the light set internally by the Hue Bridge. |
| 62 | ```{.cpp} | 62 | ```{.cpp} |
| 63 | -hueplusplus::HueLight light1 = bridge.getLight(1); | 63 | +hueplusplus::HueLight light1 = bridge.lights().get(1); |
| 64 | ``` | 64 | ``` |
| 65 | If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, | 65 | If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, |
| 66 | -you can get a vector containing them by calling [getAllLights()](@ref hueplusplus::Hue::getAllLights) on your bridge object. If no lights are found the vector will be empty. | 66 | +you can get a vector containing them by calling [getAll()](@ref hueplusplus::ResourceList::getAll) on your bridge object. If no lights are found the vector will be empty. |
| 67 | ```{.cpp} | 67 | ```{.cpp} |
| 68 | -std::vector<std::reference_wrapper<hueplusplus::HueLight>> lights = bridge.getAllLights(); | 68 | +std::vector<std::reference_wrapper<hueplusplus::HueLight>> lights = bridge.lights().getAll(); |
| 69 | ``` | 69 | ``` |
| 70 | If you now want to control a light, call a specific function of it. | 70 | If you now want to control a light, call a specific function of it. |
| 71 | ```{.cpp} | 71 | ```{.cpp} |
include/hueplusplus/Hue.h
| @@ -151,11 +151,13 @@ public: | @@ -151,11 +151,13 @@ public: | ||
| 151 | Hue(const std::string& ip, const int port, const std::string& username, std::shared_ptr<const IHttpHandler> handler, | 151 | Hue(const std::string& ip, const int port, const std::string& username, std::shared_ptr<const IHttpHandler> handler, |
| 152 | std::chrono::steady_clock::duration refreshDuration = std::chrono::seconds(10)); | 152 | std::chrono::steady_clock::duration refreshDuration = std::chrono::seconds(10)); |
| 153 | 153 | ||
| 154 | + //! \brief Refreshes the bridge state. | ||
| 155 | + //! | ||
| 156 | + //! Should only be called rarely, as a full refresh is costly and usually not necessary. | ||
| 157 | + //! Instead refresh only the parts you are interested in or rely on periodic refreshes | ||
| 158 | + //! that happen automatically when calling non-const methods. | ||
| 154 | void refresh(); | 159 | void refresh(); |
| 155 | 160 | ||
| 156 | - //! \name Configuration | ||
| 157 | - ///@{ | ||
| 158 | - | ||
| 159 | //! \brief Function to get the ip address of the hue bridge | 161 | //! \brief Function to get the ip address of the hue bridge |
| 160 | //! | 162 | //! |
| 161 | //! \return string containing ip | 163 | //! \return string containing ip |
| @@ -193,28 +195,46 @@ public: | @@ -193,28 +195,46 @@ public: | ||
| 193 | //! "192.168.2.1:8080" | 195 | //! "192.168.2.1:8080" |
| 194 | void setPort(const int port); | 196 | void setPort(const int port); |
| 195 | 197 | ||
| 196 | - //! \brief Function that sets the HttpHandler and updates the HueCommandAPI. | ||
| 197 | - //! | ||
| 198 | - //! The HttpHandler and HueCommandAPI are used for bridge communication | ||
| 199 | - //! \param handler a HttpHandler of type \ref IHttpHandler | ||
| 200 | - void setHttpHandler(std::shared_ptr<const IHttpHandler> handler); | ||
| 201 | - | 198 | + //! \brief Provides access to the configuration of the bridge. |
| 202 | BridgeConfig& config(); | 199 | BridgeConfig& config(); |
| 200 | + //! \brief Provides access to the configuration of the bridge. | ||
| 201 | + //! \note Does not refresh state. | ||
| 203 | const BridgeConfig& config() const; | 202 | const BridgeConfig& config() const; |
| 204 | - | 203 | + |
| 204 | + //! \brief Provides access to the HueLight%s on the bridge. | ||
| 205 | LightList& lights(); | 205 | LightList& lights(); |
| 206 | + //! \brief Provides access to the HueLight%s on the bridge. | ||
| 207 | + //! \note Does not refresh state. | ||
| 206 | const LightList& lights() const; | 208 | const LightList& lights() const; |
| 207 | 209 | ||
| 210 | + //! \brief Provides access to the Group%s on the bridge. | ||
| 208 | GroupList& groups(); | 211 | GroupList& groups(); |
| 212 | + //! \brief Provides access to the Group%s on the bridge. | ||
| 213 | + //! \note Does not refresh state. | ||
| 209 | const GroupList& groups() const; | 214 | const GroupList& groups() const; |
| 210 | 215 | ||
| 216 | + //! \brief Provides access to the Schedule%s on the bridge. | ||
| 211 | ScheduleList& schedules(); | 217 | ScheduleList& schedules(); |
| 218 | + //! \brief Provides access to the Schedule%s on the bridge. | ||
| 219 | + //! \note Does not refresh state. | ||
| 212 | const ScheduleList& schedules() const; | 220 | const ScheduleList& schedules() const; |
| 213 | 221 | ||
| 222 | + //! \brief Provides access to the Scene%s on the bridge. | ||
| 214 | SceneList& scenes(); | 223 | SceneList& scenes(); |
| 224 | + //! \brief Provides access to the Scene%s on the bridge. | ||
| 225 | + //! \note Does not refresh state. | ||
| 215 | const SceneList& scenes() const; | 226 | const SceneList& scenes() const; |
| 216 | 227 | ||
| 217 | private: | 228 | private: |
| 229 | + //! \brief Function that sets the HttpHandler and updates the HueCommandAPI. | ||
| 230 | + //! \param handler a HttpHandler of type \ref IHttpHandler | ||
| 231 | + //! | ||
| 232 | + //! The HttpHandler and HueCommandAPI are used for bridge communication. | ||
| 233 | + //! Resetting the HttpHandler should only be done when the username is first set, | ||
| 234 | + //! before Hue is used. | ||
| 235 | + //! Resets all caches and resource lists. | ||
| 236 | + void setHttpHandler(std::shared_ptr<const IHttpHandler> handler); | ||
| 237 | +private: | ||
| 218 | std::string ip; //!< IP-Address of the hue bridge in dotted decimal notation | 238 | std::string ip; //!< IP-Address of the hue bridge in dotted decimal notation |
| 219 | //!< like "192.168.2.1" | 239 | //!< like "192.168.2.1" |
| 220 | std::string username; //!< Username that is ussed to access the hue bridge | 240 | std::string username; //!< Username that is ussed to access the hue bridge |