Since the EPSILON variable in the header file was declared but not assigned any value, it could lead to undefined behavior or calculation errors when the variable is used without initialization. This ensures a consistent value is always used and is also defined at compile time for further safety.
- Remove checking for standard functions from the build system
- Prefix all invocations with std::
- Replace suffixed functions with unprefixed versions
- Include <cmath> in all files that use it and remove the global include
e.g. floorf(x) -> std::floor(x)
tl-dr: view the Build directory to see.
This is intended to replace the project files that we presently maintain
so that only a single set is needed instead of multiples.
The following setups were used for testing:
* Windows 8 and Visual Studio 2013 Desktop Express
* Windows 7 and Visual Studio 2012
* Mac OS X Mavericks and Xcode
* Ubuntu and makefiles
* Fedora 21 and makefiles
All three operating systems can generate projects, compile, link, and
run. Windows and Mac OS X users will find their compiled binary in the
same location as before, but Linux users will be surprised: it goes
straight into the root directory, along with a symlinked GtkModules.so
as appropriate. There is no more need for a manual symlinking step.
Known issues:
* At this time, MinGW likely does not work. Extra time will be needed.
* The WITH_JPEG option may go away, and we'll just always require it.
* Some linux libraries can use the system equivalents, but that is not up yet.
For more information, check out the Build directory.
I want Stops and Delays to be properly separated.
Before anyone asks: I know Speed Segments have
two settings: beats or seconds. It's still a Speed Segment.
Stops are not Delays.
This commit has 2 caveats.
1) Stops and Delays are treated the same in the editor right now.
2) TimingSegments.cpp: XToString should not require NUM_TimingSegmentTypes.
Ideas?
I think this is the key issue.
gcc is doing some magic for us.
VS20** is forcing us to do it right.
Yes AJ, that means Windows is better on something.
Revert this file if needed: the record is now made.
Few things of note:
1) Slowly going away from hungarian notation.
2) Trying to respect public/private members.
2a) Yes, structs can work like this.
3) Trying to not require horizontal scrolling.
If anyone else wants a crack, go ahead:
we have 9 segments left. :)