stuff-from-scratch/src/console/MainApplication.cpp
2020-05-03 07:56:27 +01:00

55 lines
1.2 KiB
C++

#include "MainApplication.h"
#include "FileLogger.h"
#include "MidiReader.h"
MainApplication::MainApplication()
: mDatabaseManager()
{
}
MainApplication::~MainApplication()
{
}
void MainApplication::Initialize(const std::filesystem::path& workDir)
{
FileLogger::GetInstance().SetWorkDirectory(workDir.string());
FileLogger::GetInstance().Open();
MLOG_INFO("Launched");
mDatabaseManager = DatabaseManager::Create();
mDatabaseManager->CreateDatabase(workDir.string() + "/database.db");
mNetworkManager = NetworkManager::Create();
mAudioManager = AudioManager::Create();
}
void MainApplication::RunServer()
{
mNetworkManager->RunHttpServer();
}
void MainApplication::PlayAudio()
{
MidiReader reader;
reader.Read("/home/james/sample.mid");
// auto device = AudioDevice::Create();
// mAudioManager->GetAudioInterface()->OpenDevice(device);
// mAudioManager->GetAudioInterface()->Play(device);
}
void MainApplication::ShutDown()
{
mDatabaseManager->OnShutDown();
mNetworkManager->ShutDown();
MLOG_INFO("Shut down");
FileLogger::GetInstance().Close();
}
std::shared_ptr<MainApplication> MainApplication::Create()
{
return std::make_shared<MainApplication>();
}