Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/WolfireGames/overgrowth.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Source/XML/Parsers/musicxmlparser.cpp')
-rw-r--r--Source/XML/Parsers/musicxmlparser.cpp112
1 files changed, 48 insertions, 64 deletions
diff --git a/Source/XML/Parsers/musicxmlparser.cpp b/Source/XML/Parsers/musicxmlparser.cpp
index a89b94bc..19288d04 100644
--- a/Source/XML/Parsers/musicxmlparser.cpp
+++ b/Source/XML/Parsers/musicxmlparser.cpp
@@ -48,104 +48,99 @@ MusicXMLParser::Song::Song() {
file_path[0] = '\0';
}
-MusicXMLParser::MusicXMLParser()
-{
-
+MusicXMLParser::MusicXMLParser() {
}
-uint32_t MusicXMLParser::Load( const std::string& path )
-{
+uint32_t MusicXMLParser::Load(const std::string& path) {
Clear();
- TiXmlDocument doc( path.c_str() );
+ TiXmlDocument doc(path.c_str());
doc.LoadFile();
- uint32_t error = kErrorNoError;;
+ uint32_t error = kErrorNoError;
+ ;
int err;
- if( !doc.Error() )
- {
+ if (!doc.Error()) {
TiXmlElement* pRoot = doc.RootElement();
- if( pRoot )
- {
+ if (pRoot) {
TiXmlHandle hRoot(pRoot);
TiXmlElement* eSong = hRoot.FirstChild("Song").Element();
- while( eSong )
- {
+ while (eSong) {
Song song;
err = strscpy(song.name, eSong->Attribute("name"), NAME_MAX_LENGTH);
- if( err == SOURCE_TOO_LONG ) {
- error |= kErrorSongNameTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ if (err == SOURCE_TOO_LONG) {
+ error |= kErrorSongNameTooLong;
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongNameMissing;
}
err = strscpy(song.type, eSong->Attribute("type"), NAME_MAX_LENGTH);
- if( err == SOURCE_TOO_LONG ) {
- error |= kErrorSongTypeTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ if (err == SOURCE_TOO_LONG) {
+ error |= kErrorSongTypeTooLong;
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongTypeMissing;
}
- if( strmtch( song.type, "single" ) ) {
- err = strscpy( song.file_path, eSong->Attribute("file_path"), PATH_MAX_LENGTH );
- if( err == SOURCE_TOO_LONG ) {
+ if (strmtch(song.type, "single")) {
+ err = strscpy(song.file_path, eSong->Attribute("file_path"), PATH_MAX_LENGTH);
+ if (err == SOURCE_TOO_LONG) {
error |= kErrorSongFilePathTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongFilePathMissing;
}
- } else if( strmtch( song.type, "segmented" ) ) {
- err = strscpy( song.start_segment, eSong->Attribute("start_segment"), NAME_MAX_LENGTH );
- if( err == SOURCE_TOO_LONG ) {
+ } else if (strmtch(song.type, "segmented")) {
+ err = strscpy(song.start_segment, eSong->Attribute("start_segment"), NAME_MAX_LENGTH);
+ if (err == SOURCE_TOO_LONG) {
error |= kErrorSongStartSegmentTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongStartSegmentMissing;
}
- TiXmlElement *eSegment = eSong->FirstChildElement("Segment");
+ TiXmlElement* eSegment = eSong->FirstChildElement("Segment");
- while( eSegment ) {
+ while (eSegment) {
Segment segment;
err = strscpy(segment.name, eSegment->Attribute("name"), NAME_MAX_LENGTH);
- if( err == SOURCE_TOO_LONG ) {
+ if (err == SOURCE_TOO_LONG) {
error |= kErrorSongSegmentNameTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongStartSegmentMissing;
}
-
+
err = strscpy(segment.path, eSegment->Attribute("path"), PATH_MAX_LENGTH);
- if( err == SOURCE_TOO_LONG ) {
+ if (err == SOURCE_TOO_LONG) {
error |= kErrorSongSegmentPathTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongSegmentPathMissing;
}
- if( std::find(song.segments.begin(),song.segments.end(),segment) == song.segments.end() ) {
+ if (std::find(song.segments.begin(), song.segments.end(), segment) == song.segments.end()) {
song.segments.push_back(segment);
} else {
- LOGE << "Segment " << segment << " already has a copy in the song, skipping." << std::endl;
+ LOGE << "Segment " << segment << " already has a copy in the song, skipping." << std::endl;
}
eSegment = eSegment->NextSiblingElement("Segment");
}
- if( song.segments.size() == 0 ) {
+ if (song.segments.size() == 0) {
error |= kErrorSongSegmentMissing;
}
- } else if( strmtch( song.type, "layered") ) {
+ } else if (strmtch(song.type, "layered")) {
TiXmlElement* eSongRef = eSong->FirstChildElement("SongRef");
- while( eSongRef ) {
+ while (eSongRef) {
SongRef sr;
- err = strscpy( sr.name, eSongRef->Attribute("name"), NAME_MAX_LENGTH );
- if( err == SOURCE_TOO_LONG ) {
+ err = strscpy(sr.name, eSongRef->Attribute("name"), NAME_MAX_LENGTH);
+ if (err == SOURCE_TOO_LONG) {
error |= kErrorSongSongRefNameTooLong;
- } else if( err == SOURCE_IS_NULL ) {
+ } else if (err == SOURCE_IS_NULL) {
error |= kErrorSongSongRefNameMissing;
}
song.songrefs.push_back(sr);
@@ -156,54 +151,43 @@ uint32_t MusicXMLParser::Load( const std::string& path )
error |= kErrorSongTypeInvalid;
}
-
- if( std::find(music.songs.begin(), music.songs.end(), song) == music.songs.end() )
- {
+ if (std::find(music.songs.begin(), music.songs.end(), song) == music.songs.end()) {
music.songs.push_back(song);
- }
- else
- {
+ } else {
LOGE << "Song " << song << " already has matching instance in the song list structure, skipping." << std::endl;
}
eSong = eSong->NextSiblingElement("Song");
}
- if( music.songs.size() == 0 ) {
- error |= kErrorSongMissing;
+ if (music.songs.size() == 0) {
+ error |= kErrorSongMissing;
}
} else {
error |= kErrorSongMissing;
}
- }
- else
- {
+ } else {
error |= kErrorDocumentParseError;
- LOGE << "Unable to parse xml document:" << path << " "<< doc.ErrorDesc() << std::endl;
+ LOGE << "Unable to parse xml document:" << path << " " << doc.ErrorDesc() << std::endl;
}
return error;
}
-bool MusicXMLParser::Save( const std::string &path )
-{
+bool MusicXMLParser::Save(const std::string& path) {
LOGE << "No saving routine implemented for MusixXMLParser" << std::endl;
return false;
}
-void MusicXMLParser::Clear()
-{
+void MusicXMLParser::Clear() {
music = Music();
}
-MusicXMLParser::Segment MusicXMLParser::Song::GetStartSegment() const
-{
+MusicXMLParser::Segment MusicXMLParser::Song::GetStartSegment() const {
std::vector<MusicXMLParser::Segment>::const_iterator segit;
- for( segit = segments.begin(); segit != segments.end(); segit++ )
- {
- if( strmtch(segit->name, start_segment ) )
- {
+ for (segit = segments.begin(); segit != segments.end(); segit++) {
+ if (strmtch(segit->name, start_segment)) {
return *segit;
}
}