2023-07-15 19:44:29 +00:00
|
|
|
#include <iostream>
|
2023-07-16 00:15:31 +00:00
|
|
|
#include <string>
|
2023-07-21 21:32:24 +00:00
|
|
|
#include <chrono>
|
|
|
|
#include <unistd.h>
|
2023-07-16 00:15:31 +00:00
|
|
|
|
|
|
|
#include "FLAC/stream_decoder.h"
|
|
|
|
#include <lame/lame.h>
|
|
|
|
|
|
|
|
#include "help.h"
|
2023-07-21 21:32:24 +00:00
|
|
|
#include "collection.h"
|
|
|
|
#include "taskmanager.h"
|
2023-10-06 21:39:07 +00:00
|
|
|
#include "settings.h"
|
2023-07-15 19:44:29 +00:00
|
|
|
|
|
|
|
int main(int argc, char **argv) {
|
2023-10-06 21:39:07 +00:00
|
|
|
Settings settings(argc, argv);
|
|
|
|
|
|
|
|
switch (settings.getAction()) {
|
|
|
|
case Settings::help:
|
|
|
|
printHelp();
|
|
|
|
return 0;
|
|
|
|
case Settings::printConfig:
|
|
|
|
//printHelp();
|
|
|
|
return 0;
|
|
|
|
case Settings::convert:
|
|
|
|
std::cout << "Converting..." << std::endl;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
std::cout << "Error in action" << std::endl;
|
|
|
|
return -1;
|
2023-07-16 00:15:31 +00:00
|
|
|
}
|
|
|
|
|
2023-07-21 21:32:24 +00:00
|
|
|
TaskManager taskManager;
|
|
|
|
taskManager.start();
|
|
|
|
|
|
|
|
std::chrono::time_point start = std::chrono::system_clock::now();
|
2023-10-06 21:39:07 +00:00
|
|
|
Collection collection(settings.getInput(), &taskManager);
|
|
|
|
collection.convert(settings.getOutput());
|
2023-07-21 21:32:24 +00:00
|
|
|
|
|
|
|
taskManager.printProgress();
|
|
|
|
taskManager.wait();
|
|
|
|
std::chrono::time_point end = std::chrono::system_clock::now();
|
|
|
|
std::chrono::duration<double> seconds = end - start;
|
2023-07-23 12:04:26 +00:00
|
|
|
std::cout << std::endl << "Encoding is done, it took " << seconds.count() << " seconds in total, enjoy!" << std::endl;
|
2023-07-21 21:32:24 +00:00
|
|
|
|
|
|
|
taskManager.stop();
|
2023-07-16 00:15:31 +00:00
|
|
|
|
2023-07-15 19:44:29 +00:00
|
|
|
return 0;
|
|
|
|
}
|