diff --git a/CMakeLists.txt b/CMakeLists.txt index c755f3598acd079f5d7d7964b12a92649e55dcd6..5ee701b04309e644f839bf5362650441b87b9b3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") find_package(Wt REQUIRED) find_package(Groove REQUIRED) -add_executable(arbitrateor src/main.cpp src/WebInterface.cpp src/GroovePlayer.cpp) +add_executable(arbitrateor src/main.cpp src/WebInterface.cpp src/GroovePlayer.cpp src/ui/LoginInterface.cpp) target_link_libraries(arbitrateor ${Wt_LIBRARIES} ${GROOVE_LIBRARY}) install(TARGETS arbitrateor RUNTIME DESTINATION bin) diff --git a/src/GroovePlayer.cpp b/src/GroovePlayer.cpp index aef1540f5349dbe895cca42df3107602d7dea8ab..3f20b1dbd9a3fd4f566a3280245348c98916cba2 100644 --- a/src/GroovePlayer.cpp +++ b/src/GroovePlayer.cpp @@ -18,3 +18,8 @@ */ #include "GroovePlayer.h" + +GroovePlayer::GroovePlayer() +{ +} + diff --git a/src/GroovePlayer.h b/src/GroovePlayer.h index 615066558ad666d90409fbf3bb6787e39d162fb0..35e12333380d3074b54e2d537c7d41e1e740cff2 100644 --- a/src/GroovePlayer.h +++ b/src/GroovePlayer.h @@ -22,6 +22,15 @@ class GroovePlayer { +public: + static GroovePlayer* getInstance() { + static GroovePlayer instance; + return &instance; + }; + GroovePlayer(GroovePlayer const&) = delete; + void operator=(GroovePlayer const&) = delete; +private: + GroovePlayer(); }; #endif // GROOVEPLAYER_H diff --git a/src/WebInterface.cpp b/src/WebInterface.cpp index 68b2f02045d3b660971973e385f53846325505ed..896ea690319b6e65574bc392c2066c66de6b5c7e 100644 --- a/src/WebInterface.cpp +++ b/src/WebInterface.cpp @@ -18,3 +18,25 @@ */ #include "WebInterface.h" +#include "ui/LoginInterface.h" +#include <Wt/WText> + +struct WebInterface::internal +{ + LoginInterface* loginUI; +}; + +WebInterface::WebInterface(const Wt::WEnvironment& env) : Wt::WApplication(env) +{ + priv_int = new internal; + setTitle("Arbitrateor - Audio Jukebox"); + priv_int->loginUI = new LoginInterface(this); + root()->addWidget(priv_int->loginUI); +} + +void WebInterface::loginCompleted() +{ + //Login completed, now bring up main inteface. + root()->removeWidget(priv_int->loginUI); + root()->addWidget(new Wt::WText("you did it")); +} diff --git a/src/WebInterface.h b/src/WebInterface.h index 3a157e1fee97c5f598eabf2fa87aa3e48e38429f..012b9d4c69a6d60b8ae4a85b1143a1e4cf7eca82 100644 --- a/src/WebInterface.h +++ b/src/WebInterface.h @@ -21,9 +21,16 @@ #define WEBINTERFACE_H #include <Wt/WApplication> +#include "GroovePlayer.h" class WebInterface : public Wt::WApplication { +public: + WebInterface(const Wt::WEnvironment& env); + void loginCompleted(); +private: + struct internal; + internal* priv_int = 0; }; #endif // WEBINTERFACE_H diff --git a/src/main.cpp b/src/main.cpp index 4a1cab38435299bcfea8e0cb33fb3ecd010097cf..2f6bf9dd6556b80de59cf590b987586fb465f565 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,30 @@ #include <iostream> #include "WebInterface.h" +#include <Wt/WServer> +#include <Wt/WConfig.h> +#include "GroovePlayer.h" + +Wt::WApplication* createApplication(const Wt::WEnvironment& env) +{ + return new WebInterface(env); +} int main ( int argc, char** argv ) { - std::cout << "Hello, world!" << std::endl; - return 0; + try { + Wt::WServer server(argv[0]); + server.setServerConfiguration(argc, argv, WTHTTP_CONFIGURATION); + server.addEntryPoint(Wt::Application, createApplication); + if(server.start()) + { + int sig = Wt::WServer::waitForShutdown(argv[0]); + server.stop(); + } + return 0; + } + catch (Wt::WServer::Exception& e) + { + std::cerr << e.what() << "\n"; + return 1; + } }