|
|
@ -2068,7 +2068,7 @@ AlsaDriver::resetPlayback(const RealTime &oldPosition, const RealTime &position)
|
|
|
|
unsigned char locateDataArr[7] = {
|
|
|
|
unsigned char locateDataArr[7] = {
|
|
|
|
0x06,
|
|
|
|
0x06,
|
|
|
|
0x01,
|
|
|
|
0x01,
|
|
|
|
0x60 + t_hrs, // (30fps flag) + hh
|
|
|
|
(unsigned char)(0x60 + t_hrs), // (30fps flag) + hh
|
|
|
|
t_min, // mm
|
|
|
|
t_min, // mm
|
|
|
|
t_sec, // ss
|
|
|
|
t_sec, // ss
|
|
|
|
t_frm, // frames
|
|
|
|
t_frm, // frames
|
|
|
@ -2339,8 +2339,8 @@ AlsaDriver::processNotesOff(const RealTime &time, bool now, bool everything)
|
|
|
|
bool scheduled = (offTime > alsaTime) && !now;
|
|
|
|
bool scheduled = (offTime > alsaTime) && !now;
|
|
|
|
if (!scheduled) offTime = RealTime::zeroTime;
|
|
|
|
if (!scheduled) offTime = RealTime::zeroTime;
|
|
|
|
|
|
|
|
|
|
|
|
snd_seq_real_time_t alsaOffTime = { offTime.sec,
|
|
|
|
snd_seq_real_time_t alsaOffTime = { (unsigned int)offTime.sec,
|
|
|
|
offTime.nsec };
|
|
|
|
(unsigned int)offTime.nsec };
|
|
|
|
|
|
|
|
|
|
|
|
snd_seq_ev_set_noteoff(&event,
|
|
|
|
snd_seq_ev_set_noteoff(&event,
|
|
|
|
ev->getChannel(),
|
|
|
|
ev->getChannel(),
|
|
|
@ -3032,7 +3032,7 @@ AlsaDriver::insertMTCFullFrame(RealTime time)
|
|
|
|
m_mtcFrames = (unsigned)m_mtcEncodedTime.nsec / 40000000U;
|
|
|
|
m_mtcFrames = (unsigned)m_mtcEncodedTime.nsec / 40000000U;
|
|
|
|
|
|
|
|
|
|
|
|
time = time + m_alsaPlayStartTime - m_playStartPosition;
|
|
|
|
time = time + m_alsaPlayStartTime - m_playStartPosition;
|
|
|
|
snd_seq_real_time_t atime = { time.sec, time.nsec };
|
|
|
|
snd_seq_real_time_t atime = { (unsigned int)time.sec, (unsigned int)time.nsec };
|
|
|
|
|
|
|
|
|
|
|
|
unsigned char data[10] =
|
|
|
|
unsigned char data[10] =
|
|
|
|
{ MIDI_SYSTEM_EXCLUSIVE,
|
|
|
|
{ MIDI_SYSTEM_EXCLUSIVE,
|
|
|
@ -3137,7 +3137,7 @@ AlsaDriver::insertMTCTQFrames(RealTime sliceStart, RealTime sliceEnd)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
RealTime scheduleTime = t + m_alsaPlayStartTime - m_playStartPosition;
|
|
|
|
RealTime scheduleTime = t + m_alsaPlayStartTime - m_playStartPosition;
|
|
|
|
snd_seq_real_time_t atime = { scheduleTime.sec, scheduleTime.nsec };
|
|
|
|
snd_seq_real_time_t atime = { (unsigned int)scheduleTime.sec, (unsigned int)scheduleTime.nsec };
|
|
|
|
|
|
|
|
|
|
|
|
event.type = SND_SEQ_EVENT_QFRAME;
|
|
|
|
event.type = SND_SEQ_EVENT_QFRAME;
|
|
|
|
event.data.control.value = c;
|
|
|
|
event.data.control.value = c;
|
|
|
@ -3500,7 +3500,7 @@ AlsaDriver::processMidiOut(const MappedComposition &mC,
|
|
|
|
|
|
|
|
|
|
|
|
// Second and nanoseconds for ALSA
|
|
|
|
// Second and nanoseconds for ALSA
|
|
|
|
//
|
|
|
|
//
|
|
|
|
snd_seq_real_time_t time = { outputTime.sec, outputTime.nsec };
|
|
|
|
snd_seq_real_time_t time = { (unsigned int)outputTime.sec, (unsigned int)outputTime.nsec };
|
|
|
|
|
|
|
|
|
|
|
|
if (!isSoftSynth) {
|
|
|
|
if (!isSoftSynth) {
|
|
|
|
|
|
|
|
|
|
|
@ -5198,7 +5198,7 @@ AlsaDriver::sendSystemQueued(MidiByte command,
|
|
|
|
snd_seq_ev_set_source(&event, m_syncOutputPort);
|
|
|
|
snd_seq_ev_set_source(&event, m_syncOutputPort);
|
|
|
|
snd_seq_ev_set_subs(&event);
|
|
|
|
snd_seq_ev_set_subs(&event);
|
|
|
|
|
|
|
|
|
|
|
|
snd_seq_real_time_t sendTime = { time.sec, time.nsec };
|
|
|
|
snd_seq_real_time_t sendTime = { (unsigned int)time.sec, (unsigned int)time.nsec };
|
|
|
|
|
|
|
|
|
|
|
|
// Schedule the command
|
|
|
|
// Schedule the command
|
|
|
|
//
|
|
|
|
//
|
|
|
|