Esempio n. 1
0
/*__________________________________________________________________________________*/
static void FreeSexEv( lifo* fl, MidiEvPtr e)
{
	register MidiEvPtr f, c, n;

	f = c = (MidiEvPtr)LinkSE(e);
	MSFreeCell (e, fl);
	do {
		n = c->link;
		MSFreeCell (c, fl);
		c = n;
	} while (c != f);
}
Esempio n. 2
0
/*__________________________________________________________________________________*/
static MidiEvPtr CopyPrivateEv( lifo* fl, MidiEvPtr ev)
{
	MidiEvPtr copy = MSNewCell( fl);
	if (copy) {
		MidiSTPtr ext = (MidiSTPtr)MSNewCell( fl);
		if (!ext) {
			MSFreeCell (copy, fl);
			return 0;
		}
		*copy = *ev;
		*ext = *LinkST(ev);
		LinkST(copy) = ext;
	}
	return copy;
}
Esempio n. 3
0
/*__________________________________________________________________________________*/
static MidiEvPtr NewPrivateEv( lifo* fl, short typeNum)
{
	MidiEvPtr ev = MSNewCell( fl);
	if( ev) {
		MidiSTPtr ext= (MidiSTPtr)MSNewCell(fl);
		if ( !ext) {
			MSFreeCell (ev, fl);
			return 0;
		}								   
		/* creates a clear extension block */
		ext->val[0]= ext->val[1]= ext->val[2]= ext->val[3]= 0;
		Link(ev)= 0;					/* initialize the header           */
		Date(ev)= defaultTime;
		EvType(ev)= (uchar)typeNum;
		RefNum(ev)= 0xff;
		Chan(ev) = Port(ev) = 0;
		LinkST(ev)= ext;				/* link the extension block        */
	}
	return ev;
}
Esempio n. 4
0
/*__________________________________________________________________________________*/
static void FreePrivateEv( lifo* fl, MidiEvPtr e)
{
	MSFreeCell (LinkST(e), fl);
	MSFreeCell (e, fl);
}
Esempio n. 5
0
/*__________________________________________________________________________________*/
static void FreeSmallEv( lifo* fl, MidiEvPtr e)
{
	MSFreeCell (e, fl);
}
Esempio n. 6
0
void MIDISHAREAPI MidiFreeCell(MidiEvPtr e) { 
  	if (e) MSFreeCell( e, FreeList(Memory(gMem)));
}