void WinMIDIOutput::sendPitchBend(int chan, int value) { WinMIDIPacket packet; packet.data[0] = MIDI_STATUS_PITCHBEND | (chan & MIDI_CHANNEL_MASK); packet.data[1] = MIDI_LSB(value); packet.data[2] = MIDI_MSB(value); d->sendShortMessage(packet); }
/** * Set properties of song position pointer messages. * @param data The message data object to write to. * @param property The property to set. * @param size The size of the memory object pointed to by @c value. * @param value A pointer to the memory object who's contents shall be * copied to the message property. * @retval 0 on success. * @retval 1 if the property was not set. */ static int _set_song_position_pointer( struct MIDIMessageData * data, MIDIProperty property, size_t size, void * value ) { unsigned char * m = &(data->bytes[0]); if( size == 0 || value == NULL ) return 1; switch( property ) { PROPERTY_CASE_SET(MIDI_STATUS,MIDIStatus,m[0]); PROPERTY_CASE_SET(MIDI_VALUE_LSB,MIDIValue,m[1]); PROPERTY_CASE_SET(MIDI_VALUE_MSB,MIDIValue,m[2]); PROPERTY_CASE_BASE(MIDI_VALUE,MIDILongValue); m[1] = MIDI_LSB(*(MIDILongValue*)value); m[2] = MIDI_MSB(*(MIDILongValue*)value); return 0; PROPERTY_DEFAULT; } }
void NetMIDIOutput::sendPitchBend(int chan, int value) { d->sendMessage(MIDI_STATUS_PITCHBEND + chan, MIDI_LSB(value), MIDI_MSB(value)); }