//_______________________________________________________________________ void CnxInit (short ref) { gSrc = ref; MidiSetRcvAlarm (ref, rcvalarm); MidiSetApplAlarm (ref, applalarm); start (); }
void MidiInputDeviceMidiShare::OpenAppl() { hRefnum = MidiOpen(MSHDriverName); if (hRefnum < 0) { throw MidiInputException("MidiShare client can not be opened"); } MidiSetRcvAlarm(hRefnum,ReceiveEvents); MidiSetApplAlarm(hRefnum,ApplAlarm); }
/* -----------------------------------------------------------------------------*/ Boolean SetupMidi(void) { myRefNum = MidiOpen (ApplName); if (myRefNum == MIDIerrSpace) return false; chgDriver = chgCon = false; MidiSetApplAlarm (myRefNum, ApplAlarm); MidiSetRcvAlarm (myRefNum, RcvAlarm); return true; }
int main(int argc, char *argv[] ) { GtkWidget *window, *hbox; char applName[256]; // Initialisations gtk_init (&argc, &argv); StripPath (argv[0], applName); CheckMidiShare (applName); gRefNum = MidiOpen(applName); // User interface construction window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), applName); gtk_container_set_border_width(GTK_CONTAINER(window), 10); hbox = gtk_hbox_new (FALSE, 10); add(hbox, makelist(&gSrcList, "Sources ->", GTK_SELECTION_MULTIPLE, GTK_SIGNAL_FUNC(select_src), GTK_SIGNAL_FUNC(unselect_src))); add(hbox, makelist(&gAppList, "Applications", GTK_SELECTION_BROWSE, GTK_SIGNAL_FUNC(select_appl), NULL)); add(hbox, makelist(&gDstList, "-> Destinations",GTK_SELECTION_MULTIPLE, GTK_SIGNAL_FUNC(select_dst), GTK_SIGNAL_FUNC(unselect_dst))); initLists(); gtk_container_add(GTK_CONTAINER(window), hbox); gtk_widget_show_all (window); // signal connexion gtk_signal_connect( GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(my_delete_action), NULL ); // MidiShare applAlarm initialisation MidiSetApplAlarm(gRefNum, MyApplAlarm); gtk_timeout_add( 100, check_update, NULL); gtk_main (); return(0); }
/** * Create MidiShare input device for LinuxSampler. * * @param AutoConnectPortID - (optional) Alsa client and port ID of a * MIDI source we should auto connect to * (e.g. "64:0") * @throws MidiInputException if initialization failed */ MidiInputDeviceMidiShare::MidiInputDeviceMidiShare(char* AutoConnectPortID) : MidiInputDevice(MidiInputDevice::type_midishare) { if (!MidiShare()) throw MidiInputException("MidiShare not installed"); #if defined(MIDISHARE_DRIVER) OpenDriver(); #else OpenAppl(); #endif hMidiFilter = MidiNewFilter(); if (hMidiFilter == 0) { MidiClose(hRefnum); throw MidiInputException("MidiShare filter can not be allocated"); } for (int i = 0 ; i < 256; i++) { MidiAcceptPort(hMidiFilter, i, 1); /* accept all ports */ MidiAcceptType(hMidiFilter, i, 0); /* reject all types */ } for (int i = 0 ; i < 16; i++) { MidiAcceptChan(hMidiFilter, i, 1); /* accept all chan */ } /* accept only the following types */ MidiAcceptType(hMidiFilter, typeNote, 1); MidiAcceptType(hMidiFilter, typeKeyOn, 1); MidiAcceptType(hMidiFilter, typeKeyOff, 1); MidiAcceptType(hMidiFilter, typeCtrlChange, 1); //MidiAcceptType(hMidiFilter, typeProgChange, 1); MidiAcceptType(hMidiFilter, typePitchWheel, 1); /* set the filter */ MidiSetFilter(hRefnum, hMidiFilter); MidiSetRcvAlarm(hRefnum,ReceiveEvents); MidiSetApplAlarm(hRefnum,ApplAlarm); MidiSetInfo(hRefnum,this); MidiConnect(0,hRefnum,true); }