示例#1
0
/*
 * delete_fluid_midishare_midi_driver
 */
int delete_fluid_midishare_midi_driver(fluid_midi_driver_t* p)
{
    fluid_midishare_midi_driver_t* dev;

    dev = (fluid_midishare_midi_driver_t*) p;
    if (dev == NULL) {
        return FLUID_OK;
    }

    if (dev->filter) MidiFreeFilter(dev->filter);

#if defined(MIDISHARE_DRIVER)
    fluid_midishare_close_driver(dev);
#else
    fluid_midishare_close_appl(dev);
#endif

#if defined(MACINTOSH) && defined(MACOS9)
    DisposeRoutineDescriptor(dev->upp_alarm_ptr);
    DisposeRoutineDescriptor(dev->upp_wakeup_ptr);
    DisposeRoutineDescriptor(dev->upp_sleep_ptr);
    DisposeRoutineDescriptor(dev->upp_task_ptr);
#endif

    dev->status = FLUID_MIDI_DONE;

    FLUID_FREE(dev);
    return FLUID_OK;
}
    MidiInputDeviceMidiShare::~MidiInputDeviceMidiShare() 
	{
		#if defined(MIDISHARE_DRIVER)
			CloseDriver();
		#else
			CloseAppl(); 
		#endif
		MidiFreeFilter(hMidiFilter);
    }
示例#3
0
void test22 ()
{
        printf("\n\n<TEST 22> close the MidiShare session\n");
        DebugStr ("--> use g or G to end the session and exit the tutorial\n");
		
		MidiFreeFilter(ourFilter);
        MidiClose(ourRefNum);
        printf("\nTHE TUTORIAL IS NOW FINISHED!\n");
}
示例#4
0
//_______________________________________________________________________
static void closeDriver (DrvMemPtr mem) 
{
	if (mem->devId) {
		tcflush(mem->devId, TCIFLUSH);
		tcsetattr (mem->devId, TCSANOW, &mem->tio[kOld]);
		close(mem->devId);
		mem->devId = 0;
	}
	if (mem->refNum > 0) {
		MidiClose (mem->refNum);
		mem->refNum = 0;
	}
	if (mem->filter) {
		MidiFreeFilter (mem->filter);
		mem->filter = 0;
	}
}
示例#5
0
/* ------------------------------------------------------------------------- */
void QuitMidi() 
{
	MidiFreeFilter(myFilter);
	MidiClose(myRefNum);
}
示例#6
0
int QuitMidi()
{
	MidiFreeFilter(myFilter);
	MidiClose(myRefNum);
	return ( 0);
}