Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
TPF
jack2
Commits
07d2c64f
Commit
07d2c64f
authored
Apr 27, 2011
by
Stephane Letz
Browse files
Use of PortRegister/PortUnRegister in drivers.
parent
55557d1f
Changes
12
Hide whitespace changes
Inline
Side-by-side
common/JackAudioDriver.cpp
View file @
07d2c64f
...
...
@@ -141,7 +141,7 @@ int JackAudioDriver::Attach()
for
(
i
=
0
;
i
<
fCaptureChannels
;
i
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:out%d"
,
fAliasName
,
fCaptureDriverName
,
i
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:capture_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
...
...
@@ -149,13 +149,12 @@ int JackAudioDriver::Attach()
port
->
SetAlias
(
alias
);
fCapturePortList
[
i
]
=
port_index
;
jack_log
(
"JackAudioDriver::Attach fCapturePortList[i] port_index = %ld"
,
port_index
);
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
}
for
(
i
=
0
;
i
<
fPlaybackChannels
;
i
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:in%d"
,
fAliasName
,
fPlaybackDriverName
,
i
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:playback_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
...
...
@@ -163,18 +162,16 @@ int JackAudioDriver::Attach()
port
->
SetAlias
(
alias
);
fPlaybackPortList
[
i
]
=
port_index
;
jack_log
(
"JackAudioDriver::Attach fPlaybackPortList[i] port_index = %ld"
,
port_index
);
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
// Monitor ports
if
(
fWithMonitorPorts
)
{
jack_log
(
"Create monitor port"
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:monitor_%u"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
JackPortIsOutput
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
JackPortIsOutput
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"Cannot register monitor port for %s"
,
name
);
return
-
1
;
}
else
{
fMonitorPortList
[
i
]
=
port_index
;
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
}
}
}
...
...
@@ -189,16 +186,13 @@ int JackAudioDriver::Detach()
jack_log
(
"JackAudioDriver::Detach"
);
for
(
i
=
0
;
i
<
fCaptureChannels
;
i
++
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fCapturePortList
[
i
]);
fEngine
->
NotifyPortRegistration
(
fCapturePortList
[
i
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fCapturePortList
[
i
]);
}
for
(
i
=
0
;
i
<
fPlaybackChannels
;
i
++
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fPlaybackPortList
[
i
]);
fEngine
->
NotifyPortRegistration
(
fPlaybackPortList
[
i
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fPlaybackPortList
[
i
]);
if
(
fWithMonitorPorts
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fMonitorPortList
[
i
]);
fEngine
->
NotifyPortRegistration
(
fMonitorPortList
[
i
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fMonitorPortList
[
i
]);
}
}
...
...
common/JackEngine.cpp
View file @
07d2c64f
...
...
@@ -804,7 +804,7 @@ int JackEngine::PortRegister(int refnum, const char* name, const char *type, uns
return
-
1
;
}
*
port_index
=
fGraphManager
->
AllocatePort
(
refnum
,
name
,
type
,
(
JackPortFlags
)
flags
,
fEngineControl
->
fB
uffer
S
ize
);
*
port_index
=
fGraphManager
->
AllocatePort
(
refnum
,
name
,
type
,
(
JackPortFlags
)
flags
,
b
uffer
_s
ize
);
if
(
*
port_index
!=
NO_PORT
)
{
if
(
client
->
GetClientControl
()
->
fActive
)
NotifyPortRegistation
(
*
port_index
,
true
);
...
...
common/JackLockedEngine.h
View file @
07d2c64f
...
...
@@ -261,13 +261,7 @@ class SERVER_EXPORT JackLockedEngine
fEngine
.
NotifyGraphReorder
();
CATCH_EXCEPTION
}
void
NotifyPortRegistration
(
jack_port_id_t
port_index
,
bool
onoff
)
{
TRY_CALL
JackLock
lock
(
&
fEngine
);
fEngine
.
NotifyPortRegistation
(
port_index
,
onoff
);
CATCH_EXCEPTION
}
void
NotifyBufferSize
(
jack_nframes_t
buffer_size
)
{
TRY_CALL
...
...
common/JackMidiDriver.cpp
View file @
07d2c64f
...
...
@@ -67,7 +67,7 @@ int JackMidiDriver::Attach()
for
(
i
=
0
;
i
<
fCaptureChannels
;
i
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:out%d"
,
fAliasName
,
fCaptureDriverName
,
i
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:capture_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
...
...
@@ -75,13 +75,12 @@ int JackMidiDriver::Attach()
port
->
SetAlias
(
alias
);
fCapturePortList
[
i
]
=
port_index
;
jack_log
(
"JackMidiDriver::Attach fCapturePortList[i] port_index = %ld"
,
port_index
);
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
}
for
(
i
=
0
;
i
<
fPlaybackChannels
;
i
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:in%d"
,
fAliasName
,
fPlaybackDriverName
,
i
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:playback_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
...
...
@@ -89,7 +88,6 @@ int JackMidiDriver::Attach()
port
->
SetAlias
(
alias
);
fPlaybackPortList
[
i
]
=
port_index
;
jack_log
(
"JackMidiDriver::Attach fPlaybackPortList[i] port_index = %ld"
,
port_index
);
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
}
UpdateLatencies
();
...
...
@@ -102,13 +100,11 @@ int JackMidiDriver::Detach()
jack_log
(
"JackMidiDriver::Detach"
);
for
(
i
=
0
;
i
<
fCaptureChannels
;
i
++
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fCapturePortList
[
i
]);
fEngine
->
NotifyPortRegistration
(
fCapturePortList
[
i
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fCapturePortList
[
i
]);
}
for
(
i
=
0
;
i
<
fPlaybackChannels
;
i
++
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fPlaybackPortList
[
i
]);
fEngine
->
NotifyPortRegistration
(
fPlaybackPortList
[
i
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fPlaybackPortList
[
i
]);
}
return
0
;
...
...
common/JackNetDriver.cpp
View file @
07d2c64f
...
...
@@ -19,9 +19,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include
"JackNetDriver.h"
#include
"JackEngineControl.h"
#include
"JackLockedEngine.h"
#include
"JackGraphManager.h"
#include
"JackWaitThreadedDriver.h"
#include
"JackLockedEngine.h"
using
namespace
std
;
...
...
@@ -268,7 +268,7 @@ namespace Jack
jack_log
(
"JackNetDriver::AllocPorts fBufferSize = %ld fSampleRate = %ld"
,
fEngineControl
->
fBufferSize
,
fEngineControl
->
fSampleRate
);
JackPort
*
port
;
jack_port_id_t
port_i
d
;
jack_port_id_t
port_i
ndex
;
char
name
[
JACK_CLIENT_NAME_SIZE
+
JACK_PORT_NAME_SIZE
];
char
alias
[
JACK_CLIENT_NAME_SIZE
+
JACK_PORT_NAME_SIZE
];
unsigned
long
port_flags
;
...
...
@@ -282,33 +282,32 @@ namespace Jack
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:out%d"
,
fAliasName
,
fCaptureDriverName
,
audio_port_index
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:capture_%d"
,
fClientControl
.
fName
,
audio_port_index
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
port
=
fGraphManager
->
GetPort
(
port_i
d
);
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
port
->
SetAlias
(
alias
);
//port latency
range
.
min
=
range
.
max
=
fEngineControl
->
fBufferSize
;
port
->
SetLatencyRange
(
JackCaptureLatency
,
&
range
);
fCapturePortList
[
audio_port_index
]
=
port_id
;
jack_log
(
"JackNetDriver::AllocPorts() fCapturePortList[%d] audio_port_index = %ld fPortLatency = %ld"
,
audio_port_index
,
port_id
,
port
->
GetLatency
());
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
fCapturePortList
[
audio_port_index
]
=
port_index
;
jack_log
(
"JackNetDriver::AllocPorts() fCapturePortList[%d] audio_port_index = %ld fPortLatency = %ld"
,
audio_port_index
,
port_index
,
port
->
GetLatency
());
}
port_flags
=
JackPortIsInput
|
JackPortIsPhysical
|
JackPortIsTerminal
;
for
(
audio_port_index
=
0
;
audio_port_index
<
fPlaybackChannels
;
audio_port_index
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:in%d"
,
fAliasName
,
fPlaybackDriverName
,
audio_port_index
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:playback_%d"
,
fClientControl
.
fName
,
audio_port_index
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
port
=
fGraphManager
->
GetPort
(
port_i
d
);
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
port
->
SetAlias
(
alias
);
//port latency
switch
(
fParams
.
fNetworkMode
)
...
...
@@ -324,9 +323,8 @@ namespace Jack
break
;
}
port
->
SetLatencyRange
(
JackPlaybackLatency
,
&
range
);
fPlaybackPortList
[
audio_port_index
]
=
port_id
;
jack_log
(
"JackNetDriver::AllocPorts() fPlaybackPortList[%d] audio_port_index = %ld fPortLatency = %ld"
,
audio_port_index
,
port_id
,
port
->
GetLatency
());
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
fPlaybackPortList
[
audio_port_index
]
=
port_index
;
jack_log
(
"JackNetDriver::AllocPorts() fPlaybackPortList[%d] audio_port_index = %ld fPortLatency = %ld"
,
audio_port_index
,
port_index
,
port
->
GetLatency
());
}
//midi
port_flags
=
JackPortIsOutput
|
JackPortIsPhysical
|
JackPortIsTerminal
;
...
...
@@ -334,19 +332,18 @@ namespace Jack
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:out%d"
,
fAliasName
,
fCaptureDriverName
,
midi_port_index
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:midi_capture_%d"
,
fClientControl
.
fName
,
midi_port_index
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
port
=
fGraphManager
->
GetPort
(
port_i
d
);
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
//port latency
range
.
min
=
range
.
max
=
fEngineControl
->
fBufferSize
;
port
->
SetLatencyRange
(
JackCaptureLatency
,
&
range
);
fMidiCapturePortList
[
midi_port_index
]
=
port_id
;
jack_log
(
"JackNetDriver::AllocPorts() fMidiCapturePortList[%d] midi_port_index = %ld fPortLatency = %ld"
,
midi_port_index
,
port_id
,
port
->
GetLatency
());
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
fMidiCapturePortList
[
midi_port_index
]
=
port_index
;
jack_log
(
"JackNetDriver::AllocPorts() fMidiCapturePortList[%d] midi_port_index = %ld fPortLatency = %ld"
,
midi_port_index
,
port_index
,
port
->
GetLatency
());
}
port_flags
=
JackPortIsInput
|
JackPortIsPhysical
|
JackPortIsTerminal
;
...
...
@@ -354,13 +351,13 @@ namespace Jack
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:in%d"
,
fAliasName
,
fPlaybackDriverName
,
midi_port_index
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:midi_playback_%d"
,
fClientControl
.
fName
,
midi_port_index
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
static_cast
<
JackPortFlags
>
(
port_flags
),
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
port
=
fGraphManager
->
GetPort
(
port_i
d
);
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
//port latency
switch
(
fParams
.
fNetworkMode
)
{
...
...
@@ -375,9 +372,8 @@ namespace Jack
break
;
}
port
->
SetLatencyRange
(
JackPlaybackLatency
,
&
range
);
fMidiPlaybackPortList
[
midi_port_index
]
=
port_id
;
jack_log
(
"JackNetDriver::AllocPorts() fMidiPlaybackPortList[%d] midi_port_index = %ld fPortLatency = %ld"
,
midi_port_index
,
port_id
,
port
->
GetLatency
());
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
fMidiPlaybackPortList
[
midi_port_index
]
=
port_index
;
jack_log
(
"JackNetDriver::AllocPorts() fMidiPlaybackPortList[%d] midi_port_index = %ld fPortLatency = %ld"
,
midi_port_index
,
port_index
,
port
->
GetLatency
());
}
return
0
;
...
...
@@ -389,16 +385,14 @@ namespace Jack
for
(
int
audio_port_index
=
0
;
audio_port_index
<
fCaptureChannels
;
audio_port_index
++
)
{
if
(
fCapturePortList
[
audio_port_index
]
>
0
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fCapturePortList
[
audio_port_index
]);
fEngine
->
NotifyPortRegistration
(
fCapturePortList
[
audio_port_index
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fCapturePortList
[
audio_port_index
]);
fCapturePortList
[
audio_port_index
]
=
0
;
}
}
for
(
int
audio_port_index
=
0
;
audio_port_index
<
fPlaybackChannels
;
audio_port_index
++
)
{
if
(
fPlaybackPortList
[
audio_port_index
]
>
0
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fPlaybackPortList
[
audio_port_index
]);
fEngine
->
NotifyPortRegistration
(
fPlaybackPortList
[
audio_port_index
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fPlaybackPortList
[
audio_port_index
]);
fPlaybackPortList
[
audio_port_index
]
=
0
;
}
}
...
...
@@ -406,15 +400,13 @@ namespace Jack
for
(
int
midi_port_index
=
0
;
midi_port_index
<
fParams
.
fSendMidiChannels
;
midi_port_index
++
)
{
if
(
fMidiCapturePortList
&&
fMidiCapturePortList
[
midi_port_index
]
>
0
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fMidiCapturePortList
[
midi_port_index
]);
fEngine
->
NotifyPortRegistration
(
fMidiCapturePortList
[
midi_port_index
],
false
);
fMidiCapturePortList
[
midi_port_index
]
=
0
;
}
}
for
(
int
midi_port_index
=
0
;
midi_port_index
<
fParams
.
fReturnMidiChannels
;
midi_port_index
++
)
{
if
(
fMidiPlaybackPortList
&&
fMidiPlaybackPortList
[
midi_port_index
]
>
0
)
{
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
fMidiPlaybackPortList
[
midi_port_index
]);
fEngine
->
NotifyPortRegistration
(
fMidiPlaybackPortList
[
midi_port_index
],
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
fMidiPlaybackPortList
[
midi_port_index
]);
fMidiPlaybackPortList
[
midi_port_index
]
=
0
;
}
}
...
...
common/JackNetOneDriver.cpp
View file @
07d2c64f
...
...
@@ -136,7 +136,7 @@ int JackNetOneDriver::Detach()
int
JackNetOneDriver
::
AllocPorts
()
{
jack_port_id_t
port_i
d
;
jack_port_id_t
port_i
ndex
;
char
buf
[
64
];
unsigned
int
chn
;
...
...
@@ -146,16 +146,16 @@ int JackNetOneDriver::AllocPorts()
for
(
chn
=
0
;
chn
<
netj
.
capture_channels_audio
;
chn
++
)
{
snprintf
(
buf
,
sizeof
(
buf
)
-
1
,
"system:capture_%u"
,
chn
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_AUDIO_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
)
)
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_AUDIO_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
buf
);
return
-
1
;
}
//port = fGraphManager->GetPort ( port_i
d
);
//port = fGraphManager->GetPort ( port_i
ndex
);
netj
.
capture_ports
=
jack_slist_append
(
netj
.
capture_ports
,
(
void
*
)(
intptr_t
)
port_i
d
);
netj
.
capture_ports
=
jack_slist_append
(
netj
.
capture_ports
,
(
void
*
)(
intptr_t
)
port_i
ndex
);
if
(
netj
.
bitdepth
==
CELT_MODE
)
{
if
(
netj
.
bitdepth
==
CELT_MODE
)
{
#if HAVE_CELT
#if HAVE_CELT_API_0_11
celt_int32
lookahead
;
...
...
@@ -178,34 +178,33 @@ int JackNetOneDriver::AllocPorts()
netj
.
capture_srcs
=
jack_slist_append
(
netj
.
capture_srcs
,
(
void
*
)
src_new
(
SRC_LINEAR
,
1
,
NULL
));
#endif
}
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
}
for
(
chn
=
netj
.
capture_channels_audio
;
chn
<
netj
.
capture_channels
;
chn
++
)
{
snprintf
(
buf
,
sizeof
(
buf
)
-
1
,
"system:capture_%u"
,
chn
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_MIDI_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
)
)
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_MIDI_TYPE
,
CaptureDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
buf
);
return
-
1
;
}
//port = fGraphManager->GetPort ( port_i
d
);
//port = fGraphManager->GetPort ( port_i
ndex
);
netj
.
capture_ports
=
jack_slist_append
(
netj
.
capture_ports
,
(
void
*
)(
intptr_t
)
port_id
);
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
jack_slist_append
(
netj
.
capture_ports
,
(
void
*
)(
intptr_t
)
port_index
);
}
for
(
chn
=
0
;
chn
<
netj
.
playback_channels_audio
;
chn
++
)
{
snprintf
(
buf
,
sizeof
(
buf
)
-
1
,
"system:playback_%u"
,
chn
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_AUDIO_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
)
)
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_AUDIO_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
buf
);
return
-
1
;
}
//port = fGraphManager->GetPort ( port_i
d
);
//port = fGraphManager->GetPort ( port_i
ndex
);
netj
.
playback_ports
=
jack_slist_append
(
netj
.
playback_ports
,
(
void
*
)(
intptr_t
)
port_i
d
);
netj
.
playback_ports
=
jack_slist_append
(
netj
.
playback_ports
,
(
void
*
)(
intptr_t
)
port_i
ndex
);
if
(
netj
.
bitdepth
==
CELT_MODE
)
{
#if HAVE_CELT
#if HAVE_CELT_API_0_11
...
...
@@ -224,21 +223,19 @@ int JackNetOneDriver::AllocPorts()
netj
.
playback_srcs
=
jack_slist_append
(
netj
.
playback_srcs
,
(
void
*
)
src_new
(
SRC_LINEAR
,
1
,
NULL
));
#endif
}
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
}
for
(
chn
=
netj
.
playback_channels_audio
;
chn
<
netj
.
playback_channels
;
chn
++
)
{
snprintf
(
buf
,
sizeof
(
buf
)
-
1
,
"system:playback_%u"
,
chn
+
1
);
if
(
(
port_id
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_MIDI_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
)
)
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
buf
,
JACK_DEFAULT_MIDI_TYPE
,
PlaybackDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
buf
);
return
-
1
;
}
//port = fGraphManager->GetPort ( port_i
d
);
//port = fGraphManager->GetPort ( port_i
ndex
);
netj
.
playback_ports
=
jack_slist_append
(
netj
.
playback_ports
,
(
void
*
)(
intptr_t
)
port_id
);
fEngine
->
NotifyPortRegistration
(
port_id
,
true
);
jack_slist_append
(
netj
.
playback_ports
,
(
void
*
)(
intptr_t
)
port_index
);
}
return
0
;
}
...
...
@@ -440,22 +437,20 @@ JackNetOneDriver::FreePorts ()
while
(
node
!=
NULL
)
{
JSList
*
this_node
=
node
;
jack_port_id_t
port_i
d
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
jack_port_id_t
port_i
ndex
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
node
=
jack_slist_remove_link
(
node
,
this_node
);
jack_slist_free_1
(
this_node
);
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
port_id
);
fEngine
->
NotifyPortRegistration
(
port_id
,
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
port_index
);
}
netj
.
capture_ports
=
NULL
;
node
=
netj
.
playback_ports
;
while
(
node
!=
NULL
)
{
JSList
*
this_node
=
node
;
jack_port_id_t
port_i
d
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
jack_port_id_t
port_i
ndex
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
node
=
jack_slist_remove_link
(
node
,
this_node
);
jack_slist_free_1
(
this_node
);
fGraphManager
->
ReleasePort
(
fClientControl
.
fRefNum
,
port_id
);
fEngine
->
NotifyPortRegistration
(
port_id
,
false
);
fEngine
->
PortUnRegister
(
fClientControl
.
fRefNum
,
port_index
);
}
netj
.
playback_ports
=
NULL
;
...
...
@@ -529,11 +524,11 @@ JackNetOneDriver::render_payload_to_jack_ports_float ( void *packet_payload, jac
#if HAVE_SAMPLERATE
SRC_DATA
src
;
#endif
jack_port_id_t
port_i
d
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
d
);
jack_port_id_t
port_i
ndex
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
jack_default_audio_sample_t
*
buf
=
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
d
,
fEngineControl
->
fBufferSize
);
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
ndex
,
fEngineControl
->
fBufferSize
);
const
char
*
porttype
=
port
->
GetType
();
...
...
@@ -601,11 +596,11 @@ JackNetOneDriver::render_jack_ports_to_payload_float (JSList *playback_ports, JS
#endif
unsigned
int
i
;
int_float_t
val
;
jack_port_id_t
port_i
d
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
d
);
jack_port_id_t
port_i
ndex
=
(
jack_port_id_t
)(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
jack_default_audio_sample_t
*
buf
=
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
d
,
fEngineControl
->
fBufferSize
);
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
ndex
,
fEngineControl
->
fBufferSize
);
const
char
*
porttype
=
port
->
GetType
();
...
...
@@ -668,11 +663,11 @@ JackNetOneDriver::render_payload_to_jack_ports_celt (void *packet_payload, jack_
unsigned
char
*
packet_bufX
=
(
unsigned
char
*
)
packet_payload
;
while
(
node
!=
NULL
)
{
jack_port_id_t
port_i
d
=
(
jack_port_id_t
)
(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
d
);
jack_port_id_t
port_i
ndex
=
(
jack_port_id_t
)
(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
jack_default_audio_sample_t
*
buf
=
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
d
,
fEngineControl
->
fBufferSize
);
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
ndex
,
fEngineControl
->
fBufferSize
);
const
char
*
portname
=
port
->
GetType
();
...
...
@@ -717,11 +712,11 @@ JackNetOneDriver::render_jack_ports_to_payload_celt (JSList *playback_ports, JSL
unsigned
char
*
packet_bufX
=
(
unsigned
char
*
)
packet_payload
;
while
(
node
!=
NULL
)
{
jack_port_id_t
port_i
d
=
(
jack_port_id_t
)
(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
d
);
jack_port_id_t
port_i
ndex
=
(
jack_port_id_t
)
(
intptr_t
)
node
->
data
;
JackPort
*
port
=
fGraphManager
->
GetPort
(
port_i
ndex
);
jack_default_audio_sample_t
*
buf
=
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
d
,
fEngineControl
->
fBufferSize
);
(
jack_default_audio_sample_t
*
)
fGraphManager
->
GetBuffer
(
port_i
ndex
,
fEngineControl
->
fBufferSize
);
const
char
*
portname
=
port
->
GetType
();
...
...
linux/alsa/JackAlsaDriver.cpp
View file @
07d2c64f
...
...
@@ -116,7 +116,7 @@ int JackAlsaDriver::Attach()
for
(
int
i
=
0
;
i
<
fCaptureChannels
;
i
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:out%d"
,
fAliasName
,
fCaptureDriverName
,
i
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:capture_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
((
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
(
JackPortFlags
)
port_flags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
(
JackPortFlags
)
port_flags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
...
...
@@ -124,7 +124,6 @@ int JackAlsaDriver::Attach()
port
->
SetAlias
(
alias
);
fCapturePortList
[
i
]
=
port_index
;
jack_log
(
"JackAlsaDriver::Attach fCapturePortList[i] %ld "
,
port_index
);
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
}
port_flags
=
(
unsigned
long
)
PlaybackDriverFlags
;
...
...
@@ -132,7 +131,7 @@ int JackAlsaDriver::Attach()
for
(
int
i
=
0
;
i
<
fPlaybackChannels
;
i
++
)
{
snprintf
(
alias
,
sizeof
(
alias
)
-
1
,
"%s:%s:in%d"
,
fAliasName
,
fPlaybackDriverName
,
i
+
1
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:playback_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
(
JackPortFlags
)
port_flags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
(
JackPortFlags
)
port_flags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"driver: cannot register port for %s"
,
name
);
return
-
1
;
}
...
...
@@ -140,17 +139,15 @@ int JackAlsaDriver::Attach()
port
->
SetAlias
(
alias
);
fPlaybackPortList
[
i
]
=
port_index
;
jack_log
(
"JackAlsaDriver::Attach fPlaybackPortList[i] %ld "
,
port_index
);
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
// Monitor ports
if
(
fWithMonitorPorts
)
{
jack_log
(
"Create monitor port"
);
snprintf
(
name
,
sizeof
(
name
)
-
1
,
"%s:monitor_%d"
,
fClientControl
.
fName
,
i
+
1
);
if
(
(
port_index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
MonitorDriverFlags
,
fEngineControl
->
fBufferSize
))
==
NO_PORT
)
{
jack_error
(
"ALSA: cannot register monitor port for %s"
,
name
);
if
(
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_AUDIO_TYPE
,
MonitorDriverFlags
,
fEngineControl
->
fBufferSize
,
&
port_index
)
<
0
)
{
jack_error
(
"ALSA: cannot register monitor port for %s"
,
name
);
}
else
{
fMonitorPortList
[
i
]
=
port_index
;
fEngine
->
NotifyPortRegistration
(
port_index
,
true
);
}
}
}
...
...
linux/alsarawmidi/JackALSARawMidiDriver.cpp
View file @
07d2c64f
...
...
@@ -68,9 +68,9 @@ JackALSARawMidiDriver::Attach()
for
(
int
i
=
0
;
i
<
fCaptureChannels
;
i
++
)
{
JackALSARawMidiInputPort
*
input_port
=
input_ports
[
i
];
name
=
input_port
->
GetName
();
index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
CaptureDriverFlags
,
buffer_size
);
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
CaptureDriverFlags
,
buffer_size
,
&
index
);
if
(
index
==
NO_PORT
)
{
jack_error
(
"JackALSARawMidiDriver::Attach - cannot register input "
"port with name '%s'."
,
name
);
...
...
@@ -85,8 +85,6 @@ JackALSARawMidiDriver::Attach()
jack_info
(
"JackALSARawMidiDriver::Attach - input port registered "
"(name='%s', alias='%s')."
,
name
,
alias
);
fEngine
->
NotifyPortRegistration
(
index
,
true
);
}
if
(
!
fEngineControl
->
fSyncMode
)
{
latency
+=
buffer_size
;
...
...
@@ -96,9 +94,9 @@ JackALSARawMidiDriver::Attach()
for
(
int
i
=
0
;
i
<
fPlaybackChannels
;
i
++
)
{
JackALSARawMidiOutputPort
*
output_port
=
output_ports
[
i
];
name
=
output_port
->
GetName
();
index
=
fGraphManager
->
AllocatePort
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
PlaybackDriverFlags
,
buffer_size
);
fEngine
->
PortRegister
(
fClientControl
.
fRefNum
,
name
,
JACK_DEFAULT_MIDI_TYPE
,
PlaybackDriverFlags
,
buffer_size
,
&
index
);
if
(
index
==
NO_PORT
)
{
jack_error
(
"JackALSARawMidiDriver::Attach - cannot register "
"output port with name '%s'."
,
name
);
...
...
@@ -113,8 +111,6 @@ JackALSARawMidiDriver::Attach()
jack_info
(
"JackALSARawMidiDriver::Attach - output port registered "
"(name='%s', alias='%s')."
,
name
,
alias
);
fEngine
->
NotifyPortRegistration
(
index
,
true
);
}
return
0
;
}
...
...
@@ -158,7 +154,7 @@ JackALSARawMidiDriver::Execute()
// called. This means that the amount of time that passes between
// 'GetMicroSeconds()' and 'ppoll()' is time that will be lost
// while waiting for 'poll() to timeout.
//
//
// I tried to replace the timeout with a 'timerfd' with absolute