1 #pragma once
2 
3 #include <vector>
4 
5 #include <util/MediaItem.h>
6 #include <util/PluginOption.h>
7 #include <core/MediaLoader.h>
8 #include <core/PluginManager.h>
9 #include <core/ConvTask.h>
10 #include <core/ConvTaskFactory.h>
11 #include <core/TagParserFactory.h>
12 using namespace mous;
13 
14 struct Context
15 {
16     using PluginPtrVector = std::vector<const Plugin*>;
17 
18     Context();
19     ~Context();
20 
21     PluginManager pluginManager;
22 
23     MediaLoader loader;
24     TagParserFactory tagParserFactory;
25     ConvTaskFactory convertTaskFactory;
26 
27     PluginPtrVector decoderPlugins;
28     PluginPtrVector encoderPlugins;
29     PluginPtrVector outputPlugins;
30     PluginPtrVector tagParserPlugins;
31     PluginPtrVector sheetParserPlugins;
32 };
33 
34 extern Context ctx;
35