JSON-based controller descriptions
[lsnes.git] / src / core / loadlib.cpp
blobb9c7a989793836e8b838c1068ef53ae5b98e9b25
1 #include "core/loadlib.hpp"
2 #include "interface/romtype.hpp"
3 #include "core/command.hpp"
4 #include "core/dispatch.hpp"
5 #include "core/misc.hpp"
6 #include "library/directory.hpp"
7 #include "library/opus.hpp"
8 #include <stdexcept>
9 #include <sstream>
10 #include <dirent.h>
12 void handle_post_loadlibrary()
14 if(new_core_flag) {
15 new_core_flag = false;
16 notify_new_core();
20 void with_loaded_library(loaded_library* l)
22 try {
23 if(!opus::libopus_loaded())
24 opus::load_libopus(*l);
25 } catch(...) {
26 //This wasn't libopus.
30 void autoload_libraries()
32 try {
33 auto libs = enumerate_directory(get_config_path() + "/autoload", ".*");
34 for(auto i : libs)
35 with_loaded_library(new loaded_library(i));
36 handle_post_loadlibrary();
37 } catch(std::exception& e) {
38 messages << e.what() << std::endl;