static int _testAppendMidiEventToSequence(void) { MidiSequence m = newMidiSequence(); MidiEvent e = newMidiEvent(); appendMidiEventToSequence(m, e); _assertIntEquals(numItemsInList(m->midiEvents), 1); return 0; }
static int _testFillEventsFromEmptyRange(void) { MidiSequence m = newMidiSequence(); MidiEvent e = newMidiEvent(); LinkedList l = newLinkedList(); e->status = 0xf7; e->timestamp = 100; appendMidiEventToSequence(m, e); _assert(fillMidiEventsFromRange(m, 0, 0, l)); _assertIntEquals(numItemsInList(l), 0); return 0; }
static int _testFillMidiEventsFromRangeStart(void) { MidiSequence m = newMidiSequence(); MidiEvent e = newMidiEvent(); LinkedList l = newLinkedList(); e->status = 0xf7; e->timestamp = 100; appendMidiEventToSequence(m, e); _assertFalse(fillMidiEventsFromRange(m, 0, 256, l)); _assertIntEquals(numItemsInList(l), 1); _assertIntEquals(((MidiEvent)l->item)->status, 0xf7) return 0; }
static int _testFillEventsFromMiddleOfRange(void) { MidiSequence m = newMidiSequence(); MidiEvent e = newMidiEvent(); MidiEvent e2 = newMidiEvent(); LinkedList l = newLinkedList(); e->status = 0xf7; e->timestamp = 100; e2->status = 0xf7; e2->timestamp = 300; appendMidiEventToSequence(m, e); appendMidiEventToSequence(m, e2); _assert(fillMidiEventsFromRange(m, 100, 256, l)); _assertIntEquals(numItemsInList(l), 2); return 0; }
static ReturnCodes setupMidiSource(MidiSource midiSource, MidiSequence* outSequence) { if(midiSource != NULL) { if(!midiSource->openMidiSource(midiSource)) { logError("MIDI source '%s' could not be opened", midiSource->sourceName->data); return RETURN_CODE_IO_ERROR; } // Read in all events from the MIDI source // TODO: This will not work if we want to support streaming MIDI events (ie, from a pipe) *outSequence = newMidiSequence(); if(!midiSource->readMidiEvents(midiSource, *outSequence)) { logWarn("Failed reading MIDI events from source '%s'", midiSource->sourceName->data); return RETURN_CODE_IO_ERROR; } } return RETURN_CODE_SUCCESS; }
static int _testNewMidiSequence(void) { MidiSequence m = newMidiSequence(); _assertNotNull(m); _assertIntEquals(numItemsInList(m->midiEvents), 0); return 0; }