aboutsummaryrefslogtreecommitdiffstats
path: root/src/base/songloading/songloader.cpp
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2010-01-15 19:25:55 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-05 17:17:44 +0100
commit07ac699856b490c66e8052121f87ec5fc0a034f1 (patch)
tree88d280c15364a0877a98cc27cb42b9457b847e27 /src/base/songloading/songloader.cpp
parent3fe5cad2a98b81cb8ef65f3c4aa7873552ecd54c (diff)
downloadusdx-07ac699856b490c66e8052121f87ec5fc0a034f1.tar.gz
usdx-07ac699856b490c66e8052121f87ec5fc0a034f1.tar.xz
usdx-07ac699856b490c66e8052121f87ec5fc0a034f1.zip
added parsing of song lyric lines
Diffstat (limited to 'src/base/songloading/songloader.cpp')
-rw-r--r--src/base/songloading/songloader.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/base/songloading/songloader.cpp b/src/base/songloading/songloader.cpp
index 8bffa607..1b900bd4 100644
--- a/src/base/songloading/songloader.cpp
+++ b/src/base/songloading/songloader.cpp
@@ -73,4 +73,22 @@ namespace usdx
return it->second->load_header(filename);
}
+
+ Song* Songloader::load_song(Song* song)
+ {
+ std::string extension = "";
+
+ size_t found = song->get_filename().rfind('.');
+ if (found != std::string::npos) {
+ extension = song->get_filename().substr(found);
+ }
+
+ std::map<std::string, SongloadingStrategy*>::iterator it = strategies.find(extension);
+ if (it == strategies.end()) {
+ LOG4CXX_WARN(log, "No SongloadingStrategy found for file extension: '" << extension << "'");
+ throw "Unknown file format.";
+ }
+
+ return it->second->load_song(song);
+ }
};