// // NoteSender.m // WiiToMidi // // Created by Mike Verdone on 13/02/07. // Copyright 2007 __MyCompanyName__. All rights reserved. // #import "NoteSender.h" #define BUTTON_DOWN(butId) ((signals[butId]) && (! _oldSignals[butId])) #define BUTTON_UP(butId) ((! signals[butId]) && (_oldSignals[butId])) @implementation NoteSender -(void) manipulate:(WiiStateArray)signals sendingMidiTo:(MidiEventOutput*)evts { if (_sendOn && (!_firstTime)) { if BUTTON_DOWN(SA_BUT_A) [evts pushNoteOn:60 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_DOWN(SA_BUT_B) [evts pushNoteOn:62 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_DOWN(SA_BUT_C) [evts pushNoteOn:65 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_DOWN(SA_BUT_Z) [evts pushNoteOn:69 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_UP(SA_BUT_A) [evts pushNoteOff:60 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_UP(SA_BUT_B) [evts pushNoteOff:62 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_UP(SA_BUT_C) [evts pushNoteOff:65 velocity:MIDI_DEFAULT_VELOCITY]; if BUTTON_UP(SA_BUT_Z) [evts pushNoteOff:69 velocity:MIDI_DEFAULT_VELOCITY]; } _firstTime = false; memcpy(_oldSignals, signals, STATE_ARR_SIZE); } -(id) setSendOn:(bool)sendOn { _sendOn = sendOn; return self; } @end