main.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. *
  3. * Copyright (c) 2020 Project CHIP Authors
  4. * All rights reserved.
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. #include <AppMain.h>
  19. #include <app/util/af.h>
  20. #include <platform/CHIPDeviceBuildConfig.h>
  21. #if defined(CHIP_IMGUI_ENABLED) && CHIP_IMGUI_ENABLED
  22. #include <imgui_ui/ui.h>
  23. #include <imgui_ui/windows/boolean_state.h>
  24. #include <imgui_ui/windows/occupancy_sensing.h>
  25. #include <imgui_ui/windows/qrcode.h>
  26. #endif
  27. using namespace chip;
  28. using namespace chip::app;
  29. using namespace chip::app::Clusters;
  30. void ApplicationInit() {}
  31. void ApplicationShutdown() {}
  32. int main(int argc, char * argv[])
  33. {
  34. VerifyOrDie(ChipLinuxAppInit(argc, argv) == 0);
  35. #if defined(CHIP_IMGUI_ENABLED) && CHIP_IMGUI_ENABLED
  36. example::Ui::ImguiUi ui;
  37. ui.AddWindow(std::make_unique<example::Ui::Windows::QRCode>());
  38. ui.AddWindow(std::make_unique<example::Ui::Windows::BooleanState>(chip::EndpointId(1), "Contact Sensor"));
  39. ui.AddWindow(std::make_unique<example::Ui::Windows::OccupancySensing>(chip::EndpointId(1), "Occupancy"));
  40. ChipLinuxAppMainLoop(&ui);
  41. #else
  42. ChipLinuxAppMainLoop();
  43. #endif
  44. return 0;
  45. }