@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla JACK API for external applications | |||
* Copyright (C) 2016-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2016-2018 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
@@ -24,6 +24,8 @@ CARLA_BACKEND_USE_NAMESPACE | |||
CARLA_EXPORT | |||
void jack_get_version(int* major_ptr, int* minor_ptr, int* micro_ptr, int* proto_ptr) | |||
{ | |||
carla_debug("%s(%p, %p, %p, %p)", __FUNCTION__, major_ptr, minor_ptr, micro_ptr, proto_ptr); | |||
*major_ptr = 1; | |||
*minor_ptr = 9; | |||
*micro_ptr = 12; | |||
@@ -33,6 +35,8 @@ void jack_get_version(int* major_ptr, int* minor_ptr, int* micro_ptr, int* proto | |||
CARLA_EXPORT | |||
const char* jack_get_version_string(void) | |||
{ | |||
carla_debug("%s()", __FUNCTION__); | |||
static const char* const kVersionStr = "1.9.12"; | |||
return kVersionStr; | |||
} | |||
@@ -55,6 +59,7 @@ CARLA_EXPORT | |||
void jack_free(void* ptr) | |||
{ | |||
carla_debug("%s(%p)", __FUNCTION__, ptr); | |||
free(ptr); | |||
} | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla JACK API for external applications | |||
* Copyright (C) 2016-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2016-2018 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
@@ -24,6 +24,8 @@ CARLA_BACKEND_USE_NAMESPACE | |||
CARLA_EXPORT | |||
int jack_client_name_size(void) | |||
{ | |||
carla_debug("%s()", __FUNCTION__); | |||
return STR_MAX; | |||
} | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla JACK API for external applications | |||
* Copyright (C) 2016-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2016-2018 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
@@ -29,17 +29,24 @@ int jack_set_latency_callback(jack_client_t* client, JackLatencyCallback callbac | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
//void jack_port_set_latency (jack_port_t *port, jack_nframes_t) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
CARLA_EXPORT | |||
void jack_port_get_latency_range(jack_port_t*, jack_latency_callback_mode_t, jack_latency_range_t* range) | |||
void jack_port_get_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range) | |||
{ | |||
carla_debug("%s(%p, %u, %p)", __FUNCTION__, port, mode, range); | |||
range->min = range->max = 0; | |||
return; | |||
// unused | |||
(void)port; | |||
(void)mode; | |||
} | |||
//void jack_port_set_latency_range (jack_port_t *port, jack_latency_callback_mode_t mode, jack_latency_range_t *range) JACK_WEAK_EXPORT; | |||
CARLA_EXPORT | |||
void jack_port_set_latency_range(jack_port_t* port, jack_latency_callback_mode_t mode, jack_latency_range_t* range) | |||
{ | |||
carla_stderr2("%s(%p, %u, %p)", __FUNCTION__, port, mode, range); | |||
} | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
@@ -53,6 +60,8 @@ int jack_recompute_total_latencies(jack_client_t* client) | |||
CARLA_EXPORT | |||
jack_nframes_t jack_port_get_latency(jack_port_t* port) | |||
{ | |||
carla_debug("%s(%p)", __FUNCTION__, port); | |||
JackPortState* const jport = (JackPortState*)port; | |||
CARLA_SAFE_ASSERT_RETURN(jport != nullptr, 0); | |||
@@ -74,6 +83,8 @@ jack_nframes_t jack_port_get_latency(jack_port_t* port) | |||
CARLA_EXPORT | |||
jack_nframes_t jack_port_get_total_latency(jack_client_t* client, jack_port_t* port) | |||
{ | |||
carla_debug("%s(%p, %p)", __FUNCTION__, client, port); | |||
JackClientState* const jclient = (JackClientState*)client; | |||
CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1); | |||
@@ -106,7 +117,19 @@ jack_nframes_t jack_port_get_total_latency(jack_client_t* client, jack_port_t* p | |||
} | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
// deprecated calls | |||
CARLA_EXPORT | |||
void jack_port_set_latency(jack_port_t* port, jack_nframes_t nframes) | |||
{ | |||
carla_stderr2("%s(%p, %u)", __FUNCTION__, port, nframes); | |||
} | |||
//int jack_recompute_total_latency (jack_client_t*, jack_port_t* port) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||
CARLA_EXPORT | |||
int jack_recompute_total_latency(jack_client_t* client, jack_port_t* port) | |||
{ | |||
carla_stderr2("%s(%p, %p)", __FUNCTION__, client, port); | |||
return 0; | |||
} | |||
// -------------------------------------------------------------------------------------------------------------------- |
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla JACK API for external applications | |||
* Copyright (C) 2016-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2016-2018 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
@@ -277,7 +277,7 @@ int jack_port_connected_to(const jack_port_t* port, const char* port_name) | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
CARLA_EXPORT | |||
const char** jack_port_get_connections (const jack_port_t* port) | |||
const char** jack_port_get_connections(const jack_port_t* port) | |||
{ | |||
carla_stderr2("%s(%p)", __FUNCTION__, port); | |||
return nullptr; | |||
@@ -299,7 +299,8 @@ int jack_port_tie(jack_port_t* src, jack_port_t* dst) | |||
return ENOSYS; | |||
// unused | |||
(void)src; (void)dst; | |||
(void)src; | |||
(void)dst; | |||
} | |||
CARLA_EXPORT | |||
@@ -343,9 +344,10 @@ int jack_port_unset_alias(jack_port_t* port, const char* alias) | |||
} | |||
CARLA_EXPORT | |||
int jack_port_get_aliases(const jack_port_t*, char* aliases[2]) | |||
int jack_port_get_aliases(const jack_port_t*, const char* aliases[2]) | |||
{ | |||
aliases[0] = aliases[1] = nullptr; | |||
static const char nullChar = '\0'; | |||
aliases[0] = aliases[1] = &nullChar; | |||
return 0; | |||
} | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla JACK API for external applications | |||
* Copyright (C) 2016-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2016-2018 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
@@ -22,23 +22,32 @@ CARLA_BACKEND_USE_NAMESPACE | |||
// -------------------------------------------------------------------------------------------------------------------- | |||
CARLA_EXPORT | |||
int jack_set_freewheel(jack_client_t*, int) | |||
int jack_set_freewheel(jack_client_t* client, int freewheel) | |||
{ | |||
carla_debug("%s(%p, %i)", __FUNCTION__, client, freewheel); | |||
return ENOSYS; | |||
// unused | |||
(void)client; | |||
(void)freewheel; | |||
} | |||
CARLA_EXPORT | |||
int jack_set_buffer_size(jack_client_t* client, jack_nframes_t bufferSize) | |||
int jack_set_buffer_size(jack_client_t* client, jack_nframes_t nframes) | |||
{ | |||
carla_debug("%s(%p, %u)", __FUNCTION__, client, nframes); | |||
JackClientState* const jclient = (JackClientState*)client; | |||
CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 0); | |||
return (jclient->server.bufferSize == bufferSize) ? 0 : 1; | |||
return (jclient->server.bufferSize == nframes) ? 0 : 1; | |||
} | |||
CARLA_EXPORT | |||
jack_nframes_t jack_get_sample_rate(jack_client_t* client) | |||
{ | |||
carla_debug("%s(%p)", __FUNCTION__, client); | |||
JackClientState* const jclient = (JackClientState*)client; | |||
CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 0); | |||
@@ -48,6 +57,8 @@ jack_nframes_t jack_get_sample_rate(jack_client_t* client) | |||
CARLA_EXPORT | |||
jack_nframes_t jack_get_buffer_size(jack_client_t* client) | |||
{ | |||
carla_debug("%s(%p)", __FUNCTION__, client); | |||
JackClientState* const jclient = (JackClientState*)client; | |||
CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 0); | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Carla JACK API for external applications | |||
* Copyright (C) 2016-2017 Filipe Coelho <falktx@falktx.com> | |||
* Copyright (C) 2016-2018 Filipe Coelho <falktx@falktx.com> | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU General Public License as | |||
@@ -65,10 +65,17 @@ jack_time_t jack_frames_to_time(const jack_client_t* client, jack_nframes_t fram | |||
const JackClientState* const jclient = (const JackClientState*)client; | |||
CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 0); | |||
return frames / jclient->server.sampleRate; | |||
return static_cast<double>(frames) / jclient->server.sampleRate * 1000000.0; | |||
} | |||
// jack_nframes_t jack_time_to_frames(const jack_client_t *client, jack_time_t) JACK_OPTIONAL_WEAK_EXPORT; | |||
CARLA_EXPORT | |||
jack_nframes_t jack_time_to_frames(const jack_client_t* client, jack_time_t time) | |||
{ | |||
const JackClientState* const jclient = (const JackClientState*)client; | |||
CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 0); | |||
return static_cast<double>(time) / 1000000.0 * jclient->server.sampleRate; | |||
} | |||
CARLA_EXPORT | |||
jack_time_t jack_get_time(void) | |||