Browse Source

Merge branch 'develop'

tags/v1.9.15
falkTX 4 years ago
parent
commit
ff8fe7b551
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
34 changed files with 200 additions and 138 deletions
  1. +5
    -0
      .gitignore
  2. +28
    -25
      common/wscript
  3. +1
    -1
      doxyfile.in
  4. +15
    -68
      example-clients/wscript
  5. +13
    -12
      linux/alsa/JackAlsaDriver.cpp
  6. +0
    -3
      linux/alsa/alsa_driver.c
  7. +0
    -1
      linux/alsa/alsa_driver.h
  8. +13
    -13
      macosx/coremidi/JackCoreMidiDriver.mm
  9. +0
    -0
      tools/alias.c
  10. +0
    -0
      tools/alsa_in.c
  11. +0
    -0
      tools/alsa_out.c
  12. +0
    -0
      tools/bufsize.c
  13. +0
    -0
      tools/connect.c
  14. +0
    -0
      tools/evmon.c
  15. +0
    -0
      tools/freewheel.c
  16. +0
    -0
      tools/ipload.c
  17. +0
    -0
      tools/ipunload.c
  18. +0
    -0
      tools/jack_control
  19. +0
    -0
      tools/lsp.c
  20. +0
    -0
      tools/midi_dump.c
  21. +0
    -0
      tools/monitor_client.c
  22. +0
    -0
      tools/netsource.c
  23. +0
    -0
      tools/property.c
  24. +0
    -0
      tools/samplerate.c
  25. +0
    -0
      tools/session_notify.c
  26. +0
    -0
      tools/transport.c
  27. +0
    -0
      tools/tw.c
  28. +0
    -0
      tools/wait.c
  29. +94
    -0
      tools/wscript
  30. +1
    -1
      windows/JackPlatformPlug_os.h
  31. +3
    -1
      windows/inno/win32.iss
  32. +7
    -1
      windows/inno/win64.iss
  33. +9
    -12
      windows/winmme/JackWinMMEDriver.cpp
  34. +11
    -0
      wscript

+ 5
- 0
.gitignore View File

@@ -4,6 +4,7 @@ man/*.1
.stamp_*
.DS_Store
__pycache__
*.dll
*.pyc
*.pkg
android/.server/
@@ -14,3 +15,7 @@ codeBlocks
macos/package.xml
macos/package-welcome.txt

# windows release files
windows/inno/version.iss
windows/inno/win32
windows/inno/win64

+ 28
- 25
common/wscript View File

@@ -132,6 +132,7 @@ def build(bld):
]
includes = ['../windows' ] + includes
libsuffix = "64" if (bld.env['DEST_CPU'] == "x86_64" and not bld.variant) else ""
buildbindir = os.path.join('..', bld.path.get_bld().srcpath().rstrip(bld.path.srcpath()))
staticbuild = bool('BUILD_STATIC' in bld.env and bld.env['BUILD_STATIC'])
uselib.append('REGEX')
uselib.append('WS2_32')
@@ -145,17 +146,23 @@ def build(bld):
if bld.env['IS_MACOSX']:
clientlib.framework = ['CoreAudio', 'Accelerate']
clientlib.defines = 'HAVE_CONFIG_H'
clientlib.includes = includes
clientlib.name = 'clientlib'
clientlib.target = 'jack'+libsuffix
clientlib.install_path = '${LIBDIR}'
clientlib.use = uselib
if bld.env['IS_WINDOWS']:
clientlib.env['cxxshlib_PATTERN'] = 'lib%s.dll'
clientlib.env['cxxstlib_PATTERN'] = 'lib%s.a'
clientlib.env['implib_PATTERN'] = 'lib%s.dll.a'
clientlib.install_path = '${LIBDIR}'
clientlib.env['cxxshlib_PATTERN'] = 'lib%s.dll'
clientlib.env['cxxstlib_PATTERN'] = 'lib%s.a'
clientlib.env['implib_PATTERN'] = 'lib%s.dll.a'
if staticbuild:
clientlib.env['SHLIB_MARKER'] = ''
clientlib.env.append_value('LINKFLAGS', ['-static-libstdc++', '--disable-auto-import'])
clientlib.env.append_value('LINKFLAGS', ['-Wl,--output-def,lib%s.def' % clientlib.target])
bld.install_files(clientlib.install_path, [os.path.join(buildbindir, 'lib%s.def' % clientlib.target)])

if bld.env['AUTOSTART_METHOD'] == 'dbus':
clientlib.use.append('DBUS-1')
clientlib.includes = includes
clientlib.name = 'clientlib'
clientlib.target = 'jack'+libsuffix
clientlib.source = [] + common_libsources
clientlib.source += [
'JackLibClient.cpp',
@@ -202,15 +209,6 @@ def build(bld):
if bld.env['IS_SUN']:
clientlib.env.append_value('LINKFLAGS', '-lnsl -lsocket')

if bld.env['IS_WINDOWS']:
# remove switch to shared binaries if possible, as we most likely want static builds on Windows
if staticbuild:
clientlib.env['SHLIB_MARKER'] = ''
# statically link libjack to libstdc++, some client apps like ardour come
# with a different version of libstdc++.dll that takes precedence and results
# in missing symbols during runtime
clientlib.env.append_value('LINKFLAGS', ['-static-libstdc++', '--disable-auto-import'])

if bld.variant:
# if there is variant defined, we expect it to be the 32bit client lib one
# we don't want to build other stuff in this variant
@@ -223,6 +221,7 @@ def build(bld):
serverlib.includes = includes
serverlib.name = 'serverlib'
serverlib.target = 'jackserver'+libsuffix
serverlib.install_path = '${LIBDIR}'
serverlib.use = uselib
if bld.env['IS_WINDOWS']:
serverlib.env['cxxshlib_PATTERN'] = 'lib%s.dll'
@@ -231,7 +230,8 @@ def build(bld):
if staticbuild:
serverlib.env['SHLIB_MARKER'] = ''
serverlib.env.append_value('LINKFLAGS', ['-static-libstdc++', '--disable-auto-import'])
serverlib.install_path = '${LIBDIR}'
serverlib.env.append_value('LINKFLAGS', ['-Wl,--output-def,lib%s.def' % serverlib.target])
bld.install_files(serverlib.install_path, [os.path.join(buildbindir, 'lib%s.def' % serverlib.target)])
serverlib.source = [] + common_libsources
serverlib.source += [
'JackAudioDriver.cpp',
@@ -325,17 +325,20 @@ def build(bld):
netlib.includes = includes
netlib.name = 'netlib'
netlib.target = 'jacknet'+libsuffix
netlib.install_path = '${LIBDIR}'
netlib.use = ['SAMPLERATE', 'CELT', 'OPUS', 'PTHREAD']
if bld.env['IS_WINDOWS']:
netlib.env['cxxshlib_PATTERN'] = 'lib%s.dll'
netlib.env['cxxstlib_PATTERN'] = 'lib%s.a'
netlib.env['implib_PATTERN'] = 'lib%s.dll.a'
if staticbuild:
netlib.env['SHLIB_MARKER'] = ''
netlib.use += ['WS2_32', 'WINMM']
netlib.use += ['WS2_32', 'WINMM']
netlib.env['cxxshlib_PATTERN'] = 'lib%s.dll'
netlib.env['cxxstlib_PATTERN'] = 'lib%s.a'
netlib.env['implib_PATTERN'] = 'lib%s.dll.a'
if staticbuild:
netlib.env['SHLIB_MARKER'] = ''
netlib.env.append_value('LINKFLAGS', ['-static-libstdc++', '--disable-auto-import'])
netlib.env.append_value('LINKFLAGS', ['-Wl,--output-def,lib%s.def' % netlib.target])
bld.install_files(netlib.install_path, [os.path.join(buildbindir, 'lib%s.def' % netlib.target)])
elif not bld.env['IS_MACOSX']:
netlib.use += ['RT']
netlib.install_path = '${LIBDIR}'
netlib.use += ['RT']
netlib.source = [
'JackNetAPI.cpp',
'JackNetInterface.cpp',


+ 1
- 1
doxyfile.in View File

@@ -792,7 +792,7 @@ HTML_HEADER =
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.

HTML_FOOTER =
HTML_FOOTER = @SRCDIR@/no_date_footer.html

# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to


+ 15
- 68
example-clients/wscript View File

@@ -2,35 +2,21 @@
# encoding: utf-8

example_programs = {
'jack_freewheel' : 'freewheel.c',
'jack_connect' : 'connect.c',
'jack_lsp' : 'lsp.c',
'jack_cpu_load' : 'cpu_load.c',
'jack_latent_client' : 'latent_client.c',
'jack_metro' : 'metro.c',
'jack_midi_latency_test' : 'midi_latency_test.c',
'jack_midiseq' : 'midiseq.c',
'jack_midisine' : 'midisine.c',
'jack_net_master' : 'netmaster.c',
'jack_net_slave' : 'netslave.c',
'jack_server_control' : 'server_control.cpp',
'jack_showtime' : 'showtime.c',
'jack_simdtests' : 'simdtests.cpp',
'jack_simple_client' : 'simple_client.c',
'jack_zombie' : 'zombie.c',
'jack_load' : 'ipload.c',
'jack_unload' : 'ipunload.c',
'jack_alias' : 'alias.c',
'jack_bufsize' : 'bufsize.c',
'jack_wait' : 'wait.c',
'jack_samplerate' : 'samplerate.c',
'jack_evmon' : 'evmon.c',
'jack_monitor_client' : 'monitor_client.c',
'jack_thru' : 'thru_client.c',
'jack_cpu_load' : 'cpu_load.c',
'jack_simple_session_client' : 'simple_session_client.c',
'jack_session_notify' : 'session_notify.c',
'jack_server_control' : 'server_control.cpp',
'jack_net_slave' : 'netslave.c',
'jack_net_master' : 'netmaster.c',
'jack_latent_client' : 'latent_client.c',
'jack_midi_dump' : 'midi_dump.c',
'jack_midi_latency_test' : 'midi_latency_test.c',
'jack_simdtests' : 'simdtests.cpp',
'jack_property' : 'property.c',
'jack_thru' : 'thru_client.c',
'jack_zombie' : 'zombie.c',
}

example_libs = {
@@ -38,12 +24,8 @@ example_libs = {
}

def configure(conf):
conf.env['BUILD_EXAMPLE_CLIENT_TRANSPORT'] = conf.env['READLINE']

conf.env['BUILD_EXAMPLE_CLIENT_REC'] = conf.env['SNDFILE']

conf.env['BUILD_EXAMPLE_ALSA_IO'] = conf.env['SAMPLERATE'] and conf.env['BUILD_DRIVER_ALSA']

def build(bld):
if bld.env['IS_LINUX']:
os_incdir = ['../linux', '../posix']
@@ -78,24 +60,13 @@ def build(bld):
prog.use += ['RT', 'M']
if bld.env['IS_SUN']:
prog.use += ['M']
if bld.env['IS_WINDOWS'] and bld.env['BUILD_STATIC']:
prog.env['LIB_PTHREAD'] = [':libwinpthread.a']
#prog.cflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation']
#prog.cxxflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation']

prog.target = example_program

if bld.env['BUILD_EXAMPLE_CLIENT_TRANSPORT']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = 'transport.c'
prog.use = ['clientlib']
if bld.env['IS_LINUX']:
prog.use += ['RT', 'READLINE']
if bld.env['IS_MACOSX']:
prog.use += ['READLINE']
if bld.env['IS_WINDOWS']:
prog.use += ['READLINE']
prog.target = 'jack_transport'

if bld.env['BUILD_EXAMPLE_CLIENT_REC']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
@@ -109,32 +80,10 @@ def build(bld):
prog.use += ['RT', 'SNDFILE']
if bld.env['IS_WINDOWS']:
prog.uselib = ['SNDFILE']
if bld.env['BUILD_STATIC']:
prog.env['LIB_PTHREAD'] = [':libwinpthread.a']
prog.target = 'jack_rec'

if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['.', '..', '../common/jack', '../common']
prog.source = ['netsource.c', '../common/netjack_packet.c']
prog.env.append_value('CFLAGS', '-DNO_JACK_ERROR')
prog.use = ['CELT', 'SAMPLERATE', 'OPUS', 'M', 'clientlib']
prog.target = 'jack_netsource'
prog.defines = ['HAVE_CONFIG_H']

if bld.env['IS_LINUX'] and bld.env['BUILD_EXAMPLE_ALSA_IO']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = ['alsa_in.c', '../common/memops.c']
prog.env.append_value('CFLAGS', '-DNO_JACK_ERROR')
prog.use = ['clientlib', 'ALSA', 'SAMPLERATE', 'M']
prog.target = 'alsa_in'

prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = ['alsa_out.c', '../common/memops.c']
prog.env.append_value('CFLAGS', '-DNO_JACK_ERROR')
prog.use = ['clientlib', 'ALSA', 'SAMPLERATE', 'M']
prog.target = 'alsa_out'

for example_lib, example_lib_source in list(example_libs.items()):
lib = bld(features = 'c cshlib')
if not bld.env['IS_WINDOWS']:
@@ -144,9 +93,7 @@ def build(bld):
lib.source = example_lib_source
if bld.env['IS_SUN']:
lib.env.append_value('LINKFLAGS', '-lm')
if bld.env['IS_WINDOWS'] and bld.env['BUILD_STATIC']:
prog.env['LIB_PTHREAD'] = [':libwinpthread.a']
lib.use = 'serverlib'
lib.install_path = '${ADDON_DIR}/'

if not bld.env['IS_WINDOWS']:
bld.symlink_as('${PREFIX}/bin/jack_disconnect', 'jack_connect')
bld.install_files('${PREFIX}/bin', 'jack_control', chmod=0o755)

+ 13
- 12
linux/alsa/JackAlsaDriver.cpp View File

@@ -352,21 +352,22 @@ int JackAlsaDriver::Open(jack_nframes_t nframes,
capture_latency,
playback_latency,
midi);
if (fDriver) {
// ALSA driver may have changed the in/out values
fCaptureChannels = ((alsa_driver_t *)fDriver)->capture_nchannels;
fPlaybackChannels = ((alsa_driver_t *)fDriver)->playback_nchannels;
if (JackServerGlobals::on_device_reservation_loop != NULL) {
device_reservation_loop_running = true;
if (JackPosixThread::StartImp(&fReservationLoopThread, 0, 0, on_device_reservation_loop, NULL) != 0) {
device_reservation_loop_running = false;
}
}
return 0;
} else {
if (!fDriver) {
Close();
return -1;
}

// ALSA driver may have changed the in/out values
fCaptureChannels = ((alsa_driver_t *)fDriver)->capture_nchannels;
fPlaybackChannels = ((alsa_driver_t *)fDriver)->playback_nchannels;
if (JackServerGlobals::on_device_reservation_loop != NULL) {
device_reservation_loop_running = true;
if (JackPosixThread::StartImp(&fReservationLoopThread, 0, 0, on_device_reservation_loop, NULL) != 0) {
device_reservation_loop_running = false;
}
}

return 0;
}

int JackAlsaDriver::Close()


+ 0
- 3
linux/alsa/alsa_driver.c View File

@@ -837,10 +837,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver,

if (driver->playback_nchannels > driver->capture_nchannels) {
driver->max_nchannels = driver->playback_nchannels;
driver->user_nchannels = driver->capture_nchannels;
} else {
driver->max_nchannels = driver->capture_nchannels;
driver->user_nchannels = driver->playback_nchannels;
}

alsa_driver_setup_io_function_pointers (driver);
@@ -2040,7 +2038,6 @@ alsa_driver_new (char *name, char *playback_alsa_device,
driver->hw = 0;
driver->capture_and_playback_not_synced = FALSE;
driver->max_nchannels = 0;
driver->user_nchannels = 0;
driver->playback_nchannels = user_playback_nchnls;
driver->capture_nchannels = user_capture_nchnls;
driver->playback_sample_bytes = (shorts_first ? 2:4);


+ 0
- 1
linux/alsa/alsa_driver.h View File

@@ -72,7 +72,6 @@ typedef struct _alsa_driver {
unsigned long *capture_interleave_skip;
unsigned long *playback_interleave_skip;
channel_t max_nchannels;
channel_t user_nchannels;
channel_t playback_nchannels;
channel_t capture_nchannels;
unsigned long playback_sample_bytes;


+ 13
- 13
macosx/coremidi/JackCoreMidiDriver.mm View File

@@ -633,7 +633,7 @@ JackCoreMidiDriver::Start()
jack_info("JackCoreMidiDriver::Start - Enabling physical input ports.");

for (; pi_count < num_physical_inputs; pi_count++) {
if (physical_input_ports[pi_count]->Start() < 0) {
if (!physical_input_ports[pi_count]->Start()) {
jack_error("JackCoreMidiDriver::Start - Failed to enable physical "
"input port.");
goto stop_physical_input_ports;
@@ -643,7 +643,7 @@ JackCoreMidiDriver::Start()
jack_info("JackCoreMidiDriver::Start - Enabling physical output ports.");

for (; po_count < num_physical_outputs; po_count++) {
if (physical_output_ports[po_count]->Start() < 0) {
if (!physical_output_ports[po_count]->Start()) {
jack_error("JackCoreMidiDriver::Start - Failed to enable physical "
"output port.");
goto stop_physical_output_ports;
@@ -653,7 +653,7 @@ JackCoreMidiDriver::Start()
jack_info("JackCoreMidiDriver::Start - Enabling virtual input ports.");

for (; vi_count < num_virtual_inputs; vi_count++) {
if (virtual_input_ports[vi_count]->Start() < 0) {
if (!virtual_input_ports[vi_count]->Start()) {
jack_error("JackCoreMidiDriver::Start - Failed to enable virtual "
"input port.");
goto stop_virtual_input_ports;
@@ -663,7 +663,7 @@ JackCoreMidiDriver::Start()
jack_info("JackCoreMidiDriver::Start - Enabling virtual output ports.");

for (; vo_count < num_virtual_outputs; vo_count++) {
if (virtual_output_ports[vo_count]->Start() < 0) {
if (!virtual_output_ports[vo_count]->Start()) {
jack_error("JackCoreMidiDriver::Start - Failed to enable virtual "
"output port.");
goto stop_virtual_output_ports;
@@ -676,28 +676,28 @@ JackCoreMidiDriver::Start()

stop_virtual_output_ports:
for (int i = 0; i < vo_count; i++) {
if (virtual_output_ports[i]->Stop() < 0) {
if (!virtual_output_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Start - Failed to disable virtual "
"output port.");
}
}
stop_virtual_input_ports:
for (int i = 0; i < vi_count; i++) {
if (virtual_input_ports[i]->Stop() < 0) {
if (!virtual_input_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Start - Failed to disable virtual "
"input port.");
}
}
stop_physical_output_ports:
for (int i = 0; i < po_count; i++) {
if (physical_output_ports[i]->Stop() < 0) {
if (!physical_output_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Start - Failed to disable "
"physical output port.");
}
}
stop_physical_input_ports:
for (int i = 0; i < pi_count; i++) {
if (physical_input_ports[i]->Stop() < 0) {
if (!physical_input_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Start - Failed to disable "
"physical input port.");
}
@@ -716,7 +716,7 @@ JackCoreMidiDriver::Stop()
jack_info("JackCoreMidiDriver::Stop - disabling physical input ports.");

for (int i = 0; i < num_physical_inputs; i++) {
if (physical_input_ports[i]->Stop() < 0) {
if (!physical_input_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Stop - Failed to disable physical "
"input port.");
result = -1;
@@ -726,7 +726,7 @@ JackCoreMidiDriver::Stop()
jack_info("JackCoreMidiDriver::Stop - disabling physical output ports.");

for (int i = 0; i < num_physical_outputs; i++) {
if (physical_output_ports[i]->Stop() < 0) {
if (!physical_output_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Stop - Failed to disable physical "
"output port.");
result = -1;
@@ -736,7 +736,7 @@ JackCoreMidiDriver::Stop()
jack_info("JackCoreMidiDriver::Stop - disabling virtual input ports.");

for (int i = 0; i < num_virtual_inputs; i++) {
if (virtual_input_ports[i]->Stop() < 0) {
if (!virtual_input_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Stop - Failed to disable virtual "
"input port.");
result = -1;
@@ -746,7 +746,7 @@ JackCoreMidiDriver::Stop()
jack_info("JackCoreMidiDriver::Stop - disabling virtual output ports.");

for (int i = 0; i < num_virtual_outputs; i++) {
if (virtual_output_ports[i]->Stop() < 0) {
if (!virtual_output_ports[i]->Stop()) {
jack_error("JackCoreMidiDriver::Stop - Failed to disable virtual "
"output port.");
result = -1;
@@ -825,7 +825,7 @@ extern "C" {

desc = jack_driver_descriptor_construct("coremidi", JackDriverSlave, "Apple CoreMIDI API based MIDI backend", &filler);

value.ui = 0;
value.ui = 0;
jack_driver_descriptor_add_parameter(desc, &filler, "inchannels", 'i', JackDriverParamUInt, &value, NULL, "CoreMIDI virtual bus", NULL);
jack_driver_descriptor_add_parameter(desc, &filler, "outchannels", 'o', JackDriverParamUInt, &value, NULL, "CoreMIDI virtual bus", NULL);



example-clients/alias.c → tools/alias.c View File


example-clients/alsa_in.c → tools/alsa_in.c View File


example-clients/alsa_out.c → tools/alsa_out.c View File


example-clients/bufsize.c → tools/bufsize.c View File


example-clients/connect.c → tools/connect.c View File


example-clients/evmon.c → tools/evmon.c View File


example-clients/freewheel.c → tools/freewheel.c View File


example-clients/ipload.c → tools/ipload.c View File


example-clients/ipunload.c → tools/ipunload.c View File


example-clients/jack_control → tools/jack_control View File


example-clients/lsp.c → tools/lsp.c View File


example-clients/midi_dump.c → tools/midi_dump.c View File


example-clients/monitor_client.c → tools/monitor_client.c View File


example-clients/netsource.c → tools/netsource.c View File


example-clients/property.c → tools/property.c View File


example-clients/samplerate.c → tools/samplerate.c View File


example-clients/session_notify.c → tools/session_notify.c View File


example-clients/transport.c → tools/transport.c View File


example-clients/tw.c → tools/tw.c View File


example-clients/wait.c → tools/wait.c View File


+ 94
- 0
tools/wscript View File

@@ -0,0 +1,94 @@
#! /usr/bin/python3
# encoding: utf-8

example_tools = {
'jack_alias' : 'alias.c',
'jack_bufsize' : 'bufsize.c',
'jack_connect' : 'connect.c',
'jack_evmon' : 'evmon.c',
'jack_freewheel' : 'freewheel.c',
'jack_load' : 'ipload.c',
'jack_lsp' : 'lsp.c',
'jack_midi_dump' : 'midi_dump.c',
'jack_monitor_client' : 'monitor_client.c',
'jack_property' : 'property.c',
'jack_samplerate' : 'samplerate.c',
'jack_session_notify' : 'session_notify.c',
'jack_unload' : 'ipunload.c',
'jack_wait' : 'wait.c',
}

def configure(conf):
conf.env['BUILD_EXAMPLE_ALSA_IO'] = conf.env['SAMPLERATE'] and conf.env['BUILD_DRIVER_ALSA']
conf.env['BUILD_EXAMPLE_CLIENT_TRANSPORT'] = conf.env['READLINE']

def build(bld):
if bld.env['IS_LINUX']:
os_incdir = ['../linux', '../posix']
if bld.env['IS_MACOSX']:
os_incdir = ['../macosx', '../posix']
if bld.env['IS_SUN']:
os_incdir = ['../solaris', '../posix']
if bld.env['IS_WINDOWS']:
os_incdir = ['../windows']
for example_tool, example_tool_source in list(example_tools.items()):
if bld.env['IS_MACOSX']:
prog = bld(features='c cprogram', framework = ['Foundation'])
else:
prog = bld(features='c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = example_tool_source
prog.use = ['clientlib']
if bld.env['IS_LINUX']:
prog.use += ['RT', 'M']
if bld.env['IS_SUN']:
prog.use += ['M']
if bld.env['IS_WINDOWS'] and bld.env['BUILD_STATIC']:
prog.env['LIB_PTHREAD'] = [':libwinpthread.a']
#prog.cflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation']
#prog.cxxflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation']

prog.target = example_tool

if bld.env['BUILD_EXAMPLE_CLIENT_TRANSPORT']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = 'transport.c'
prog.use = ['clientlib']
if bld.env['IS_LINUX']:
prog.use += ['RT', 'READLINE']
if bld.env['IS_MACOSX']:
prog.use += ['READLINE']
if bld.env['IS_WINDOWS']:
prog.use += ['READLINE']
if bld.env['BUILD_STATIC']:
prog.env['LIB_PTHREAD'] = [':libwinpthread.a']
prog.target = 'jack_transport'

if bld.env['IS_LINUX'] or bld.env['IS_MACOSX']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['.', '..', '../common/jack', '../common']
prog.source = ['netsource.c', '../common/netjack_packet.c']
prog.env.append_value('CFLAGS', '-DNO_JACK_ERROR')
prog.use = ['CELT', 'SAMPLERATE', 'OPUS', 'M', 'clientlib']
prog.target = 'jack_netsource'
prog.defines = ['HAVE_CONFIG_H']

if bld.env['IS_LINUX'] and bld.env['BUILD_EXAMPLE_ALSA_IO']:
prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = ['alsa_in.c', '../common/memops.c']
prog.env.append_value('CFLAGS', '-DNO_JACK_ERROR')
prog.use = ['clientlib', 'ALSA', 'SAMPLERATE', 'M']
prog.target = 'alsa_in'

prog = bld(features = 'c cprogram')
prog.includes = os_incdir + ['../common/jack', '../common']
prog.source = ['alsa_out.c', '../common/memops.c']
prog.env.append_value('CFLAGS', '-DNO_JACK_ERROR')
prog.use = ['clientlib', 'ALSA', 'SAMPLERATE', 'M']
prog.target = 'alsa_out'

if not bld.env['IS_WINDOWS']:
bld.symlink_as('${PREFIX}/bin/jack_disconnect', 'jack_connect')
bld.install_files('${PREFIX}/bin', 'jack_control', chmod=0o755)

+ 1
- 1
windows/JackPlatformPlug_os.h View File

@@ -24,7 +24,7 @@
#define jack_server_dir "server"
#define jack_client_dir "client"
#define JACK_DEFAULT_DRIVER "portaudio"
#define JACK_LOCATION "C:/Program Files/Jack"
#define JACK_LOCATION "C:\\Program Files\\JACK2"

#ifndef ADDON_DIR
#define ADDON_DIR "jack"


+ 3
- 1
windows/inno/win32.iss View File

@@ -39,8 +39,10 @@ Source: "win32\bin\qjackctl.exe"; DestDir: "{app}\qjackctl"; Components: qjackct
Source: "Qt5*.dll"; DestDir: "{app}\qjackctl"; Components: qjackctl;
Source: "qwindows.dll"; DestDir: "{app}\qjackctl\platforms"; Components: qjackctl;
; dev
Source: "win32\include\jack\*.h"; DestDir: "{app}\include"; Components: dev;
Source: "win32\include\jack\*.h"; DestDir: "{app}\include\jack"; Components: dev;
Source: "win32\lib\*.a"; DestDir: "{app}\lib"; Components: dev;
Source: "win32\lib\*.def"; DestDir: "{app}\lib"; Components: dev;
Source: "win32\lib\*.lib"; DestDir: "{app}\lib"; Components: dev;
Source: "win32\lib\jack\*.a"; DestDir: "{app}\lib\jack"; Components: dev;

[Icons]


+ 7
- 1
windows/inno/win64.iss View File

@@ -35,13 +35,19 @@ Source: "win64\lib\jack\*.dll"; DestDir: "{app}\jack";
Source: "win64\bin\jack_*.exe"; DestDir: "{app}\tools";
; jack client lib (NOTE goes into windir)
Source: "win64\lib\libjack64.dll"; DestDir: "{win}";
Source: "win64\lib32\libjack.dll"; DestDir: "{win}";
; qjackctl
Source: "win64\bin\qjackctl.exe"; DestDir: "{app}\qjackctl"; Components: qjackctl;
Source: "Qt5*.dll"; DestDir: "{app}\qjackctl"; Components: qjackctl;
Source: "qwindows.dll"; DestDir: "{app}\qjackctl\platforms"; Components: qjackctl;
; dev
Source: "win64\include\jack\*.h"; DestDir: "{app}\include"; Components: dev;
Source: "win64\include\jack\*.h"; DestDir: "{app}\include\jack"; Components: dev;
Source: "win64\lib\*.a"; DestDir: "{app}\lib"; Components: dev;
Source: "win64\lib\*.def"; DestDir: "{app}\lib"; Components: dev;
Source: "win64\lib\*.lib"; DestDir: "{app}\lib"; Components: dev;
Source: "win64\lib32\*.a"; DestDir: "{app}\lib32"; Components: dev;
Source: "win64\lib32\*.def"; DestDir: "{app}\lib32"; Components: dev;
Source: "win64\lib32\*.lib"; DestDir: "{app}\lib32"; Components: dev;
Source: "win64\lib\jack\*.a"; DestDir: "{app}\lib\jack"; Components: dev;

[Icons]


+ 9
- 12
windows/winmme/JackWinMMEDriver.cpp View File

@@ -204,8 +204,8 @@ JackWinMMEDriver::Open(bool capturing, bool playing, int in_channels,
new JackWinMMEOutputPort(fAliasName, client_name,
playback_driver_name, i);
} catch (std::exception& e) {
jack_error("JackWinMMEDriver::Open - while creating output "
"port: %s", e.what());
jack_error("JackWinMMEDriver::Open - while creating output port: %s | %s, %s, %s",
e.what(), fAliasName, client_name, playback_driver_name);
continue;
}
output_count++;
@@ -215,10 +215,7 @@ JackWinMMEDriver::Open(bool capturing, bool playing, int in_channels,
jack_log("JackWinMMEDriver::Open - input_count %d", input_count);
jack_log("JackWinMMEDriver::Open - output_count %d", output_count);

if (! (input_count || output_count)) {
jack_error("JackWinMMEDriver::Open - no WinMME inputs or outputs "
"allocated.");
} else if (! JackMidiDriver::Open(capturing, playing, input_count,
if (! JackMidiDriver::Open(capturing, playing, input_count,
output_count, monitor,
capture_driver_name,
playback_driver_name, capture_latency,
@@ -286,7 +283,7 @@ JackWinMMEDriver::Start()
jack_log("JackWinMMEDriver::Start - Enabling input ports.");

for (; input_count < fCaptureChannels; input_count++) {
if (input_ports[input_count]->Start() < 0) {
if (! input_ports[input_count]->Start()) {
jack_error("JackWinMMEDriver::Start - Failed to enable input "
"port.");
goto stop_input_ports;
@@ -296,7 +293,7 @@ JackWinMMEDriver::Start()
jack_log("JackWinMMEDriver::Start - Enabling output ports.");

for (; output_count < fPlaybackChannels; output_count++) {
if (output_ports[output_count]->Start() < 0) {
if (! output_ports[output_count]->Start()) {
jack_error("JackWinMMEDriver::Start - Failed to enable output "
"port.");
goto stop_output_ports;
@@ -308,14 +305,14 @@ JackWinMMEDriver::Start()

stop_output_ports:
for (int i = 0; i < output_count; i++) {
if (output_ports[i]->Stop() < 0) {
if (! output_ports[i]->Stop()) {
jack_error("JackWinMMEDriver::Start - Failed to disable output "
"port.");
}
}
stop_input_ports:
for (int i = 0; i < input_count; i++) {
if (input_ports[i]->Stop() < 0) {
if (! input_ports[i]->Stop()) {
jack_error("JackWinMMEDriver::Start - Failed to disable input "
"port.");
}
@@ -334,7 +331,7 @@ JackWinMMEDriver::Stop()
jack_log("JackWinMMEDriver::Stop - disabling input ports.");

for (int i = 0; i < fCaptureChannels; i++) {
if (input_ports[i]->Stop() < 0) {
if (! input_ports[i]->Stop()) {
jack_error("JackWinMMEDriver::Stop - Failed to disable input "
"port.");
result = -1;
@@ -344,7 +341,7 @@ JackWinMMEDriver::Stop()
jack_log("JackWinMMEDriver::Stop - disabling output ports.");

for (int i = 0; i < fPlaybackChannels; i++) {
if (output_ports[i]->Stop() < 0) {
if (! output_ports[i]->Stop()) {
jack_error("JackWinMMEDriver::Stop - Failed to disable output "
"port.");
result = -1;


+ 11
- 0
wscript View File

@@ -289,6 +289,7 @@ def configure(conf):


conf.recurse('example-clients')
conf.recurse('tools')

# test for the availability of ucontext, and how it should be used
for t in ['gp_regs', 'uc_regs', 'mc_gregs', 'gregs']:
@@ -424,6 +425,14 @@ def configure(conf):
conf.env['LIBDIR'] = Options.options.libdir32
else:
conf.env['LIBDIR'] = conf.env['PREFIX'] + '/lib32'

if conf.env['IS_WINDOWS'] and conf.env['BUILD_STATIC']:
def replaceFor32bit(env):
for e in env: yield e.replace('x86_64', 'i686', 1)
for env in ('AR', 'CC', 'CXX', 'LINK_CC', 'LINK_CXX'):
conf.all_envs[lib32][env] = list(replaceFor32bit(conf.all_envs[lib32][env]))
conf.all_envs[lib32]['LIB_REGEX'] = ['tre32']

# libdb does not work in mixed mode
conf.all_envs[lib32]['HAVE_DB'] = 0
conf.all_envs[lib32]['HAVE_DB_H'] = 0
@@ -804,6 +813,8 @@ def build(bld):
build_drivers(bld)

bld.recurse('example-clients')
bld.recurse('tools')

if bld.env['IS_LINUX']:
bld.recurse('man')
bld.recurse('systemd')


Loading…
Cancel
Save