2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
7 #include <proto/utility.h>
8 #include <proto/exec.h>
10 #include "camd_intern.h"
12 /*****************************************************************************
16 AROS_LH2(ULONG
, GetMidiLinkAttrsA
,
19 AROS_LHA(struct MidiLink
*, midilink
, A0
),
20 AROS_LHA(struct TagItem
*, tags
, A1
),
23 struct CamdBase
*, CamdBase
, 17, Camd
)
26 Remind me to fill in things here later.
33 If you are not the owner of the midilink, you should lock
34 Camd before calling to ensure that it wont go away.
35 Theres no point in locking if you know it wont go away.
48 *****************************************************************************/
53 struct TagItem
*tstate
=tags
;
57 ObtainSemaphoreShared(CB(CamdBase
)->CLSemaphore
);
59 while((tag
=NextTagItem(&tstate
))){
61 where
=(IPTR
*)tag
->ti_Data
;
64 *where
=(IPTR
)midilink
->ml_Node
.ln_Name
;
67 *where
=(IPTR
)midilink
->ml_Location
->mcl_Node
.ln_Name
;
69 case MLINK_ChannelMask
:
70 *where
=(IPTR
)midilink
->ml_ChannelMask
;
73 *where
=(IPTR
)midilink
->ml_EventTypeMask
;
76 *where
=(IPTR
)midilink
->ml_UserData
;
82 *where
=(IPTR
)midilink
->ml_PortID
;
85 *where
=(IPTR
)midilink
->ml_Flags
&MLF_PrivateLink
;
88 *where
=(IPTR
)midilink
->ml_Node
.ln_Pri
;
90 case MLINK_SysExFilter
:
91 *where
=(IPTR
)midilink
->ml_SysExFilter
.sxf_Packed
;
93 case MLINK_SysExFilterX
:
94 *where
=(IPTR
)midilink
->ml_SysExFilter
.sxf_Packed
;
97 *where
=(IPTR
)midilink
->ml_ParserData
==0?FALSE
:TRUE
;
105 ReleaseSemaphore(CB(CamdBase
)->CLSemaphore
);
116 ULONG VARARGS68K
GetMidiLinkAttrs(
117 struct CamdIFace
*Self
,
118 struct MidiLink
* ml
,
123 struct TagItem
* varargs
;
124 va_startlinear(ap
, ml
);
125 varargs
= va_getlinearva(ap
, struct TagItem
*);
126 return Self
->GetMidiLinkAttrsA(