mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 19:56:31 +01:00
Make SMF::append_event_delta take a buffer and a size rather than an Event (no point, more generic, etc.).
git-svn-id: svn://localhost/ardour2/branches/3.0@4567 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
ea37584cac
commit
d0cc3120ae
3 changed files with 12 additions and 18 deletions
|
|
@ -303,7 +303,7 @@ SMFSource::append_event_unlocked(EventTimeUnit unit, const Evoral::Event<double>
|
||||||
delta_time = (uint32_t)((ev.time() - last_event_time()) * ppqn());
|
delta_time = (uint32_t)((ev.time() - last_event_time()) * ppqn());
|
||||||
}
|
}
|
||||||
|
|
||||||
Evoral::SMF<double>::append_event_delta(delta_time, ev);
|
Evoral::SMF<double>::append_event_delta(delta_time, ev.size(), ev.buffer());
|
||||||
_last_ev_time = ev.time();
|
_last_ev_time = ev.time();
|
||||||
|
|
||||||
_write_data_count += ev.size();
|
_write_data_count += ev.size();
|
||||||
|
|
@ -619,7 +619,6 @@ SMFSource::load_model(bool lock, bool force_reload)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (lock) {
|
if (lock) {
|
||||||
Glib::Mutex::Lock lm (_lock);
|
Glib::Mutex::Lock lm (_lock);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,14 +64,12 @@ public:
|
||||||
bool eof() const { assert(false); return true; }
|
bool eof() const { assert(false); return true; }
|
||||||
|
|
||||||
void begin_write();
|
void begin_write();
|
||||||
void append_event_delta(uint32_t delta_t, const Event<Time>& ev);
|
void append_event_delta(uint32_t delta_t, uint32_t size, const uint8_t* buf);
|
||||||
void end_write() THROW_FILE_ERROR;
|
void end_write() THROW_FILE_ERROR;
|
||||||
|
|
||||||
void flush() {};
|
void flush() {};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const uint16_t _ppqn = 19200;
|
|
||||||
|
|
||||||
std::string _path;
|
std::string _path;
|
||||||
smf_t* _smf;
|
smf_t* _smf;
|
||||||
smf_track_t* _smf_track;
|
smf_track_t* _smf_track;
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ SMF<Time>::read_event(uint32_t* delta_t, uint32_t* size, uint8_t** buf) const
|
||||||
*size = event_size;
|
*size = event_size;
|
||||||
|
|
||||||
/*printf("SMF::read_event:\n");
|
/*printf("SMF::read_event:\n");
|
||||||
for (size_t i=0; i < *size; ++i) {
|
for (size_t i = 0; i < *size; ++i) {
|
||||||
printf("%X ", (*buf)[i]);
|
printf("%X ", (*buf)[i]);
|
||||||
} printf("\n");*/
|
} printf("\n");*/
|
||||||
|
|
||||||
|
|
@ -223,28 +223,25 @@ SMF<Time>::read_event(uint32_t* delta_t, uint32_t* size, uint8_t** buf) const
|
||||||
|
|
||||||
template<typename Time>
|
template<typename Time>
|
||||||
void
|
void
|
||||||
SMF<Time>::append_event_delta(uint32_t delta_t, const Event<Time>& ev)
|
SMF<Time>::append_event_delta(uint32_t delta_t, uint32_t size, const uint8_t* buf)
|
||||||
{
|
{
|
||||||
assert(ev.size() > 0);
|
if (size == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/*printf("SMF::append_event_delta:\n");
|
/*printf("SMF::append_event_delta:\n");
|
||||||
for (size_t i=0; i < ev.size(); ++i) {
|
for (size_t i = 0; i < size; ++i) {
|
||||||
printf("%X ", ev.buffer()[i]);
|
printf("%X ", buf[i]);
|
||||||
} printf("\n");*/
|
} printf("\n");*/
|
||||||
|
|
||||||
smf_event_t* event;
|
smf_event_t* event;
|
||||||
|
|
||||||
event = smf_event_new_from_pointer((void *) ev.buffer(), int(ev.size()));
|
event = smf_event_new_from_pointer(buf, size);
|
||||||
assert(event != NULL);
|
assert(event != NULL);
|
||||||
|
|
||||||
memcpy(event->midi_buffer, ev.buffer(), ev.size());
|
|
||||||
|
|
||||||
assert(_smf_track);
|
assert(_smf_track);
|
||||||
smf_track_add_event_delta_pulses(_smf_track, event, int(delta_t));
|
smf_track_add_event_delta_pulses(_smf_track, event, delta_t);
|
||||||
|
_empty = false;
|
||||||
if (ev.size() > 0) {
|
|
||||||
_empty = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Time>
|
template<typename Time>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue