1218885Sdim/* 2218885Sdim * Copyright 2006, Haiku. 3353358Sdim * 4353358Sdim * Copyright (c) 2003 Matthijs Hollemans 5353358Sdim * Copyright (c) 2002 Jerome Leveque 6218885Sdim * Distributed under the terms of the MIT License. 7218885Sdim * 8218885Sdim * Authors: 9218885Sdim * Matthijs Hollemans 10218885Sdim * J��r��me Leveque 11218885Sdim */ 12218885Sdim 13249423Sdim#include <Midi.h> 14249423Sdim#include "MidiGlue.h" 15218885Sdim#include <MidiPort.h> 16251662Sdim 17327952Sdimusing namespace BPrivate; 18327952Sdim 19341825Sdim 20280031SdimBMidiGlue::BMidiGlue(BMidi* midiObject_, const char* name) 21276479Sdim : BMidiLocalConsumer(name) 22218885Sdim{ 23218885Sdim fMidiObject = midiObject_; 24218885Sdim} 25218885Sdim 26261991Sdim 27261991Sdimvoid 28261991SdimBMidiGlue::NoteOff( 29261991Sdim uchar channel, uchar note, uchar velocity, bigtime_t time) 30341825Sdim{ 31261991Sdim fMidiObject->NoteOff(channel + 1, note, velocity, MAKE_TIME(time)); 32261991Sdim} 33218885Sdim 34341825Sdim 35341825Sdimvoid 36341825SdimBMidiGlue::NoteOn( 37261991Sdim uchar channel, uchar note, uchar velocity, bigtime_t time) 38341825Sdim{ 39341825Sdim fMidiObject->NoteOn(channel + 1, note, velocity, MAKE_TIME(time)); 40261991Sdim} 41218885Sdim 42341825Sdim 43341825Sdimvoid 44341825SdimBMidiGlue::KeyPressure( 45309124Sdim uchar channel, uchar note, uchar pressure, bigtime_t time) 46341825Sdim{ 47341825Sdim fMidiObject->KeyPressure(channel + 1, note, pressure, MAKE_TIME(time)); 48218885Sdim} 49341825Sdim 50341825Sdim 51218885Sdimvoid 52341825SdimBMidiGlue::ControlChange( 53341825Sdim uchar channel, uchar controlNumber, uchar controlValue, bigtime_t time) 54218885Sdim{ 55341825Sdim fMidiObject->ControlChange( 56276479Sdim channel + 1, controlNumber, controlValue, MAKE_TIME(time)); 57280031Sdim} 58276479Sdim 59276479Sdim 60276479Sdimvoid 61280031SdimBMidiGlue::ProgramChange( 62280031Sdim uchar channel, uchar programNumber, bigtime_t time) 63280031Sdim{ 64280031Sdim fMidiObject->ProgramChange(channel + 1, programNumber, MAKE_TIME(time)); 65280031Sdim} 66280031Sdim 67280031Sdim 68280031Sdimvoid 69327952SdimBMidiGlue::ChannelPressure( 70261991Sdim uchar channel, uchar pressure, bigtime_t time) 71276479Sdim{ 72276479Sdim fMidiObject->ChannelPressure(channel + 1, pressure, MAKE_TIME(time)); 73261991Sdim} 74276479Sdim 75276479Sdim 76261991Sdimvoid 77261991SdimBMidiGlue::PitchBend( 78261991Sdim uchar channel, uchar lsb, uchar msb, bigtime_t time) 79261991Sdim{ 80261991Sdim fMidiObject->PitchBend(channel + 1, lsb, msb, MAKE_TIME(time)); 81276479Sdim} 82276479Sdim 83276479Sdim 84327952Sdimvoid 85261991SdimBMidiGlue::SystemExclusive( 86261991Sdim void* data, size_t length, bigtime_t time) 87261991Sdim{ 88261991Sdim fMidiObject->SystemExclusive(data, length, MAKE_TIME(time)); 89261991Sdim} 90309124Sdim 91341825Sdim 92218885Sdimvoid 93341825SdimBMidiGlue::SystemCommon( 94341825Sdim uchar status, uchar data1, uchar data2, bigtime_t time) 95341825Sdim{ 96341825Sdim fMidiObject->SystemCommon(status, data1, data2, MAKE_TIME(time)); 97341825Sdim} 98327952Sdim 99327952Sdim 100327952Sdimvoid 101327952SdimBMidiGlue::SystemRealTime(uchar status, bigtime_t time) 102327952Sdim{ 103327952Sdim fMidiObject->SystemRealTime(status, MAKE_TIME(time)); 104327952Sdim} 105327952Sdim 106327952Sdim 107261991Sdimvoid 108261991SdimBMidiGlue::TempoChange(int32 beatsPerMinute, bigtime_t time) 109261991Sdim{ 110261991Sdim fMidiObject->TempoChange(beatsPerMinute, MAKE_TIME(time)); 111327952Sdim} 112218885Sdim 113218885Sdim 114218885SdimBMidiPortGlue::BMidiPortGlue(BMidiPort* midiObject_, const char* name) 115276479Sdim : BMidiLocalConsumer(name) 116276479Sdim{ 117276479Sdim fMidiObject = midiObject_; 118218885Sdim} 119276479Sdim 120218885Sdim 121261991Sdimvoid 122261991SdimBMidiPortGlue::NoteOff( 123327952Sdim uchar channel, uchar note, uchar velocity, bigtime_t time) 124327952Sdim{ 125327952Sdim fMidiObject->SprayNoteOff(channel + 1, note, velocity, MAKE_TIME(time)); 126341825Sdim} 127341825Sdim 128327952Sdim 129327952Sdimvoid 130327952SdimBMidiPortGlue::NoteOn( 131327952Sdim uchar channel, uchar note, uchar velocity, bigtime_t time) 132261991Sdim{ 133261991Sdim fMidiObject->SprayNoteOn(channel + 1, note, velocity, MAKE_TIME(time)); 134261991Sdim} 135327952Sdim 136341825Sdim 137341825Sdimvoid 138341825SdimBMidiPortGlue::KeyPressure( 139341825Sdim uchar channel, uchar note, uchar pressure, bigtime_t time) 140341825Sdim{ 141327952Sdim fMidiObject->SprayKeyPressure( 142261991Sdim channel + 1, note, pressure, MAKE_TIME(time)); 143280031Sdim} 144280031Sdim 145280031Sdim 146280031Sdimvoid 147280031SdimBMidiPortGlue::ControlChange( 148280031Sdim uchar channel, uchar controlNumber, uchar controlValue, bigtime_t time) 149280031Sdim{ 150280031Sdim fMidiObject->SprayControlChange( 151280031Sdim channel + 1, controlNumber, controlValue, MAKE_TIME(time)); 152280031Sdim} 153280031Sdim 154280031Sdim 155280031Sdimvoid 156280031SdimBMidiPortGlue::ProgramChange( 157280031Sdim uchar channel, uchar programNumber, bigtime_t time) 158280031Sdim{ 159280031Sdim fMidiObject->SprayProgramChange( 160280031Sdim channel + 1, programNumber, MAKE_TIME(time)); 161280031Sdim} 162280031Sdim 163280031Sdim 164280031Sdimvoid 165280031SdimBMidiPortGlue::ChannelPressure( 166280031Sdim uchar channel, uchar pressure, bigtime_t time) 167280031Sdim{ 168280031Sdim fMidiObject->SprayChannelPressure(channel + 1, pressure, MAKE_TIME(time)); 169280031Sdim} 170280031Sdim 171280031Sdim 172280031Sdimvoid 173280031SdimBMidiPortGlue::PitchBend( 174280031Sdim uchar channel, uchar lsb, uchar msb, bigtime_t time) 175280031Sdim{ 176280031Sdim fMidiObject->SprayPitchBend(channel + 1, lsb, msb, MAKE_TIME(time)); 177261991Sdim} 178261991Sdim 179261991Sdim 180261991Sdimvoid 181261991SdimBMidiPortGlue::SystemExclusive( 182261991Sdim void* data, size_t length, bigtime_t time) 183261991Sdim{ 184261991Sdim fMidiObject->SpraySystemExclusive(data, length, MAKE_TIME(time)); 185261991Sdim} 186261991Sdim 187261991Sdim 188261991Sdimvoid 189261991SdimBMidiPortGlue::SystemCommon( 190261991Sdim uchar status, uchar data1, uchar data2, bigtime_t time) 191261991Sdim{ 192276479Sdim fMidiObject->SpraySystemCommon(status, data1, data2, MAKE_TIME(time)); 193276479Sdim} 194276479Sdim 195261991Sdim 196218885Sdimvoid 197341825SdimBMidiPortGlue::SystemRealTime(uchar status, bigtime_t time) 198341825Sdim{ 199341825Sdim fMidiObject->SpraySystemRealTime(status, MAKE_TIME(time)); 200341825Sdim} 201341825Sdim 202341825Sdim 203341825Sdimvoid 204341825SdimBMidiPortGlue::TempoChange(int32 beatsPerMinute, bigtime_t time) 205261991Sdim{ 206218885Sdim fMidiObject->SprayTempoChange(beatsPerMinute, MAKE_TIME(time)); 207218885Sdim} 208218885Sdim 209