4#include "Etterna/Models/Misc/BackgroundUtil.h"
5#include "Etterna/Models/Misc/GameConstantsAndTypes.h"
7#include "Etterna/FileTypes/MsdFile.h"
17const float FAST_BPM_WARP = 9999999.f;
20const int MAX_EDIT_STEPS_SIZE_BYTES = 60 * 1024;
70 bool bFromCache =
false);
77 std::vector<std::string>& out);
78 virtual bool LoadFromBGChangesString(
80 const std::string& sBGChangeExpression);
87 void ParseBPMs(std::vector<std::pair<float, float>>& out,
88 const std::string& line,
89 const int rowsPerBeat = -1);
95 const std::vector<std::pair<float, float>>& vBPMChanges);
101 void ParseStops(std::vector<std::pair<float, float>>& out,
102 const std::string& line,
103 const int rowsPerBeat = -1);
109 const std::vector<std::pair<float, float>>& vStops);
116 std::vector<std::pair<float, float>>& vBPMs,
117 std::vector<std::pair<float, float>>& vStops);
124 const std::string& line,
125 const int rowsPerBeat = -1);
127 const std::string& line,
128 const std::string& songname,
129 const int rowsPerBeat = -1);
136 const std::string& line,
137 const int rowsPerBeat = -1);
139 const std::string& line,
140 const std::string& songname,
141 const int rowsPerBeat = -1);
148 const std::string& line,
149 const int rowsPerBeat = -1);
151 const std::string& line,
152 const std::string& songname,
153 const int rowsPerBeat = -1);
161 const std::string& line,
162 const int rowsPerBeat = -1);
164 const std::string& line,
165 const std::string& songname,
166 const int rowsPerBeat = -1);
169 const std::string& line,
180 const std::string& line,
181 const int rowsPerBeat = -1);
183 const std::string& line,
184 const std::string& songname,
185 const int rowsPerBeat = -1);
187 virtual void ProcessBGChanges(
Song& out,
188 const std::string& sValueName,
189 const std::string& sPath,
190 const std::string& sParam);
192 void ProcessInstrumentTracks(
Song& out,
const std::string& sParam);
202 static float RowToBeat(
const std::string& line,
const int rowsPerBeat);
215 std::string sDescription,
216 std::string sDifficulty,
218 std::string sNoteData,
246 const std::string fileExt;
248 std::string songTitle;
250 std::string chartPath;
Holds all music metadata and steps for one song.
Definition Song.h:65
Holds note information for a Song.
Definition Steps.h:42
Holds data for translating beats<->seconds.
Definition TimingData.h:54
Definition BackgroundUtil.h:62
Reads a Song from an .SM file.
Definition NotesLoaderSM.h:24
virtual bool LoadFromDir(const std::string &sPath, Song &out)
Attempt to load a song from a specified path.
Definition NotesLoaderSM.cpp:302
void ProcessStops(TimingData &out, const std::vector< std::pair< float, float > > &vStops)
Process the Stop Segments from the data.
virtual std::string GetSongTitle() const
Get the song title.
Definition NotesLoaderSM.cpp:296
static float RowToBeat(const std::string &line, const int rowsPerBeat)
Convert a row value to the proper beat value.
Definition NotesLoaderSM.cpp:310
virtual void ProcessFakes(TimingData &out, const std::string &line, const int rowsPerBeat=-1)
Process the Fake Segments from the string.
Definition NotesLoaderSM.cpp:931
virtual void GetApplicableFiles(const std::string &sPath, std::vector< std::string > &out)
Retrieve the list of .sm files.
Definition NotesLoaderSM.cpp:1228
static void TidyUpData(Song &song, bool bFromCache)
Perform some cleanup on the loaded song.
Definition NotesLoaderSM.cpp:1235
void ParseBPMs(std::vector< std::pair< float, float > > &out, const std::string &line, const int rowsPerBeat=-1)
Parse BPM Changes data from a string.
Definition NotesLoaderSM.cpp:433
void ParseStops(std::vector< std::pair< float, float > > &out, const std::string &line, const int rowsPerBeat=-1)
Parse Stops data from a string.
Definition NotesLoaderSM.cpp:465
std::string GetFileExtension() const
Retrieve the file extension associated with this loader.
Definition NotesLoaderSM.h:224
void ProcessTickcounts(TimingData &out, const std::string &line, const int rowsPerBeat=-1)
Process the Tickcount Segments from the string.
Definition NotesLoaderSM.cpp:824
virtual bool LoadFromSimfile(const std::string &sPath, Song &out, bool bFromCache=false)
Attempt to load the specified sm file.
Definition NotesLoaderSM.cpp:1158
virtual void SetSongTitle(const std::string &title)
Set the song title.
Definition NotesLoaderSM.cpp:290
void ProcessBPMsAndStops(TimingData &out, std::vector< std::pair< float, float > > &vBPMs, std::vector< std::pair< float, float > > &vStops)
Process BPM and stop segments from the data.
Definition NotesLoaderSM.cpp:511
void ProcessTimeSignatures(TimingData &out, const std::string &line, const int rowsPerBeat=-1)
Process the Time Signature Segments from the string.
Definition NotesLoaderSM.cpp:759
virtual bool LoadNoteDataFromSimfile(const std::string &path, Steps &out)
Retrieve the relevant notedata from the simfile.
Definition NotesLoaderSM.cpp:1063
void ProcessDelays(TimingData &out, const std::string &line, const int rowsPerBeat=-1)
Process the Delay Segments from the string.
Definition NotesLoaderSM.cpp:712
virtual void LoadFromTokens(std::string sStepsType, std::string sDescription, std::string sDifficulty, std::string sMeter, std::string sNoteData, Steps &out)
Process the different tokens we have available to get NoteData.
Definition NotesLoaderSM.cpp:323
void ProcessBPMs(TimingData &out, const std::vector< std::pair< float, float > > &vBPMChanges)
Process the BPM Segments from the string.
virtual void ProcessSpeeds(TimingData &out, const std::string &line, const int rowsPerBeat=-1)
Process the Speed Segments from the string.
Definition NotesLoaderSM.cpp:861
std::string GetChartPath() const
Get the chart path.
Definition NotesLoaderSM.h:229