diff --git a/src/GroovePlayer.cpp b/src/GroovePlayer.cpp index 3919a70495f5ab0831880ebf436b9aea2c604c30..7b548ad1b09d458ec78c7c55f0bab1e94d63844b 100644 --- a/src/GroovePlayer.cpp +++ b/src/GroovePlayer.cpp @@ -29,11 +29,13 @@ #include #include -GroovePlayerMgr::GroovePlayerMgr (std::string dbFile) : sqliteConnection(dbFile), connectionPool(&sqliteConnection, 3) +GroovePlayerMgr::GroovePlayerMgr (std::string dbFile) { + sqliteConnection = new Wt::Dbo::backend::Sqlite3(dbFile); + connectionPool = new Wt::Dbo::FixedSqlConnectionPool(sqliteConnection, 3); musicScanDir = std::filesystem::current_path()/"music"; Wt::Dbo::Session sqlSession; - sqlSession.setConnectionPool(connectionPool); + sqlSession.setConnectionPool(*connectionPool); sqlSession.mapClass("user"); sqlSession.mapClass("tracks"); sqlSession.mapClass("actions"); @@ -52,6 +54,11 @@ GroovePlayerMgr::GroovePlayerMgr (std::string dbFile) : sqliteConnection(dbFile) } +GroovePlayerMgr::~GroovePlayerMgr() +{ + delete connectionPool; +} + std::list GroovePlayerMgr::getNextVoteBatch(Wt::Dbo::Session* session) { /** @@ -136,7 +143,7 @@ void GroovePlayerMgr::grooveEventLoop() */ Wt::Dbo::Session sqlSession; - sqlSession.setConnectionPool(connectionPool); + sqlSession.setConnectionPool(*connectionPool); sqlSession.mapClass("user"); sqlSession.mapClass("tracks"); sqlSession.mapClass("actions"); @@ -471,7 +478,7 @@ void GroovePlayerMgr::removeOrphanedTracks(Wt::Dbo::Session* session) void GroovePlayerMgr::grooveAudioScannerLoop() { Wt::Dbo::Session sqlSession; - sqlSession.setConnectionPool(connectionPool); + sqlSession.setConnectionPool(*connectionPool); sqlSession.mapClass("user"); sqlSession.mapClass("tracks"); sqlSession.mapClass("actions"); diff --git a/src/GroovePlayer.h b/src/GroovePlayer.h index b03d5f920a8e63541a5023e7c3cb345a32f7065f..ce05c213fa320670db2bdf4c71e5082352862ab4 100644 --- a/src/GroovePlayer.h +++ b/src/GroovePlayer.h @@ -54,8 +54,9 @@ private: enum PlayerEvents {NOTHING, GROOVE_NOWPLAYING, VOTING_ENDED, VOTE_CAST, PLAYING_PAUSED, PLAYING_RESUMED, SKIP_REQUESTED, SKIP_VOTE_CAST, SKIP_VOTING_ENDED, ADMIN_FORCE_SKIP}; GroovePlayerMgr (std::string dbFile); - Wt::Dbo::backend::Sqlite3 sqliteConnection; - Wt::Dbo::FixedSqlConnectionPool connectionPool; + ~GroovePlayerMgr(); + Wt::Dbo::backend::Sqlite3* sqliteConnection; + Wt::Dbo::FixedSqlConnectionPool* connectionPool; bool continueEventLoop = true; std::list requestQueue;