aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.hpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2017-02-28 15:50:16 +0300
committerWohlstand <admin@wohlnet.ru>2017-02-28 15:50:16 +0300
commit285fd4e367ca7383ab57fc81f9e84731a67825bb (patch)
tree9aec429c49110ab872bc2da4dfdb5ee06ab3dd71 /src/adlmidi_private.hpp
parent1f905ede543e7c59323875562a815ab8034a5c79 (diff)
downloadlibADLMIDI-285fd4e367ca7383ab57fc81f9e84731a67825bb.tar.gz
libADLMIDI-285fd4e367ca7383ab57fc81f9e84731a67825bb.tar.bz2
libADLMIDI-285fd4e367ca7383ab57fc81f9e84731a67825bb.zip
Fixed wrong very long inter-note delays on 32-bit platforms
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r--src/adlmidi_private.hpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp
index 2d6ecae..907dcb4 100644
--- a/src/adlmidi_private.hpp
+++ b/src/adlmidi_private.hpp
@@ -173,18 +173,18 @@ class MIDIplay
{
bool began;
char padding[7];
- double wait;
+ long double wait;
struct TrackInfo
{
size_t ptr;
- long delay;
+ uint64_t delay;
int status;
char padding2[4];
TrackInfo(): ptr(0), delay(0), status(0) {}
};
std::vector<TrackInfo> track;
- Position(): began(false), wait(0.0), track() { }
+ Position(): began(false), wait(0.0l), track() { }
} CurrentPosition, LoopBeginPosition, trackBeginPosition;
std::map<std::string, uint64_t> devices;
@@ -200,7 +200,7 @@ class MIDIplay
uint8_t panning, vibrato, sustain;
char ____padding[6];
double bend, bendsense;
- double vibpos, vibspeed, vibdepth;
+ long double vibpos, vibspeed, vibdepth;
int64_t vibdelay;
uint8_t lastlrpn, lastmrpn;
bool nrpn;
@@ -287,7 +287,7 @@ public:
ADL_MIDIPlayer *config;
std::string musTitle;
- fraction<long> InvDeltaTicks, Tempo;
+ fraction<uint64_t> InvDeltaTicks, Tempo;
bool trackStart,
loopStart,
loopEnd,
@@ -454,7 +454,7 @@ public:
* Input: granularity = don't expect intervals smaller than this, in seconds
* Output: desired number of seconds until next call
*/
- double Tick(double s, double granularity);
+ long double Tick(long double s, long double granularity);
private:
enum
@@ -491,8 +491,8 @@ private:
//void UpdatePortamento(unsigned MidCh)
void NoteUpdate_All(uint16_t MidCh, unsigned props_mask);
void NoteOff(uint16_t MidCh, uint8_t note);
- void UpdateVibrato(double amount);
- void UpdateArpeggio(double /*amount*/);
+ void UpdateVibrato(long double amount);
+ void UpdateArpeggio(long double /*amount*/);
public:
uint64_t ChooseDevice(const std::string &name);