diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2010-01-15 19:25:55 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-05 17:17:44 +0100 |
commit | 07ac699856b490c66e8052121f87ec5fc0a034f1 (patch) | |
tree | 88d280c15364a0877a98cc27cb42b9457b847e27 /src/base/songloading/songloader.cpp | |
parent | 3fe5cad2a98b81cb8ef65f3c4aa7873552ecd54c (diff) | |
download | usdx-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.cpp | 18 |
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); + } }; |