summaryrefslogtreecommitdiff
path: root/common/JackNetOneDriver.cpp
diff options
context:
space:
mode:
authorNedko Arnaudov <nedko@arnaudov.name>2011-04-22 22:14:31 +0300
committerNedko Arnaudov <nedko@arnaudov.name>2011-04-22 22:19:13 +0300
commita9e4628340a0fe4d36cc0e684c71af16a4e3717d (patch)
tree357220e4a7453dfce66dabd3427b641718ed3eb8 /common/JackNetOneDriver.cpp
parentcfa7575fcc05e8cfb6dee10d94ce6f7b4b79d7ad (diff)
downloadjack2-a9e4628340a0fe4d36cc0e684c71af16a4e3717d.tar.gz
helper functions for jack_driver_desc_t construction
The main goal is to reduce risk of mismatch between allocated and initialized parameter numbers.
Diffstat (limited to 'common/JackNetOneDriver.cpp')
-rw-r--r--common/JackNetOneDriver.cpp218
1 files changed, 53 insertions, 165 deletions
diff --git a/common/JackNetOneDriver.cpp b/common/JackNetOneDriver.cpp
index 832a373a..3a61ba55 100644
--- a/common/JackNetOneDriver.cpp
+++ b/common/JackNetOneDriver.cpp
@@ -778,174 +778,62 @@ extern "C"
#endif
SERVER_EXPORT jack_driver_desc_t* driver_get_descriptor ()
{
- jack_driver_desc_t* desc = ( jack_driver_desc_t* ) calloc ( 1, sizeof ( jack_driver_desc_t ) );
- jack_driver_param_desc_t * params;
-
- strcpy ( desc->name, "netone" ); // size MUST be less then JACK_DRIVER_NAME_MAX + 1
- strcpy ( desc->desc, "netjack one slave backend component" ); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1
-
- params = ( jack_driver_param_desc_t* ) calloc ( 18, sizeof ( jack_driver_param_desc_t ) );
-
- int i = 0;
- strcpy (params[i].name, "audio-ins");
- params[i].character = 'i';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 2U;
- strcpy (params[i].short_desc, "Number of capture channels (defaults to 2)");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "audio-outs");
- params[i].character = 'o';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 2U;
- strcpy (params[i].short_desc, "Number of playback channels (defaults to 2)");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "midi-ins");
- params[i].character = 'I';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 1U;
- strcpy (params[i].short_desc, "Number of midi capture channels (defaults to 1)");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "midi-outs");
- params[i].character = 'O';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 1U;
- strcpy (params[i].short_desc, "Number of midi playback channels (defaults to 1)");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "rate");
- params[i].character = 'r';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 48000U;
- strcpy (params[i].short_desc, "Sample rate");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "period");
- params[i].character = 'p';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 1024U;
- strcpy (params[i].short_desc, "Frames per period");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "num-periods");
- params[i].character = 'n';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 5U;
- strcpy (params[i].short_desc,
- "Network latency setting in no. of periods");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "listen-port");
- params[i].character = 'l';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 3000U;
- strcpy (params[i].short_desc,
- "The socket port we are listening on for sync packets");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "factor");
- params[i].character = 'f';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 1U;
- strcpy (params[i].short_desc,
- "Factor for sample rate reduction");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "upstream-factor");
- params[i].character = 'u';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 0U;
- strcpy (params[i].short_desc,
- "Factor for sample rate reduction on the upstream");
- strcpy (params[i].long_desc, params[i].short_desc);
+ jack_driver_desc_t * desc;
+ jack_driver_desc_filler_t filler;
+ jack_driver_param_value_t value;
+
+ desc = jack_driver_descriptor_construct("netone", "netjack one slave backend component", &filler);
+
+ value.ui = 2U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "audio-ins", 'i', JackDriverParamUInt, &value, NULL, "Number of capture channels (defaults to 2)", NULL);
+ jack_driver_descriptor_add_parameter(desc, &filler, "audio-outs", 'o', JackDriverParamUInt, &value, NULL, "Number of playback channels (defaults to 2)", NULL);
+
+ value.ui = 1U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "midi-ins", 'I', JackDriverParamUInt, &value, NULL, "Number of midi capture channels (defaults to 1)", NULL);
+ jack_driver_descriptor_add_parameter(desc, &filler, "midi-outs", 'O', JackDriverParamUInt, &value, NULL, "Number of midi playback channels (defaults to 1)", NULL);
+
+ value.ui = 48000U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "rate", 'r', JackDriverParamUInt, &value, NULL, "Sample rate", NULL);
+
+ value.ui = 1024U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "period", 'p', JackDriverParamUInt, &value, NULL, "Frames per period", NULL);
+
+ value.ui = 5U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "num-periods", 'n', JackDriverParamUInt, &value, NULL, "Network latency setting in no. of periods", NULL);
+
+ value.ui = 3000U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "listen-port", 'l', JackDriverParamUInt, &value, NULL, "The socket port we are listening on for sync packets", NULL);
+
+ value.ui = 1U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "factor", 'f', JackDriverParamUInt, &value, NULL, "Factor for sample rate reduction", NULL);
+
+ value.ui = 0U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "upstream-factor", 'u', JackDriverParamUInt, &value, NULL, "Factor for sample rate reduction on the upstream", NULL);
#if HAVE_CELT
- i++;
- strcpy (params[i].name, "celt");
- params[i].character = 'c';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 0U;
- strcpy (params[i].short_desc,
- "sets celt encoding and number of kbits per channel");
- strcpy (params[i].long_desc, params[i].short_desc);
+ value.ui = 0U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "celt", 'c', JackDriverParamUInt, &value, NULL, "sets celt encoding and number of kbits per channel", NULL);
#endif
- i++;
- strcpy (params[i].name, "bit-depth");
- params[i].character = 'b';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 0U;
- strcpy (params[i].short_desc,
- "Sample bit-depth (0 for float, 8 for 8bit and 16 for 16bit)");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "transport-sync");
- params[i].character = 't';
- params[i].type = JackDriverParamBool;
- params[i].value.ui = 1U;
- strcpy (params[i].short_desc,
- "Whether to slave the transport to the master transport");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "autoconf");
- params[i].character = 'a';
- params[i].type = JackDriverParamBool;
- params[i].value.ui = 1U;
- strcpy (params[i].short_desc,
- "Whether to use Autoconfig, or just start.");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "redundancy");
- params[i].character = 'R';
- params[i].type = JackDriverParamUInt;
- params[i].value.ui = 1U;
- strcpy (params[i].short_desc,
- "Send packets N times");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "native-endian");
- params[i].character = 'e';
- params[i].type = JackDriverParamBool;
- params[i].value.ui = 0U;
- strcpy (params[i].short_desc,
- "Dont convert samples to network byte order.");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "jitterval");
- params[i].character = 'J';
- params[i].type = JackDriverParamInt;
- params[i].value.i = 0;
- strcpy (params[i].short_desc,
- "attempted jitterbuffer microseconds on master");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- i++;
- strcpy (params[i].name, "always-deadline");
- params[i].character = 'D';
- params[i].type = JackDriverParamBool;
- params[i].value.ui = 0U;
- strcpy (params[i].short_desc,
- "always use deadline");
- strcpy (params[i].long_desc, params[i].short_desc);
-
- desc->nparams = i + 1;
-
- desc->params = params;
+ value.ui = 0U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "bit-depth", 'b', JackDriverParamUInt, &value, NULL, "Sample bit-depth (0 for float, 8 for 8bit and 16 for 16bit)", NULL);
+
+ value.i = true;
+ jack_driver_descriptor_add_parameter(desc, &filler, "transport-sync", 't', JackDriverParamBool, &value, NULL, "Whether to slave the transport to the master transport", NULL);
+
+ value.ui = true;
+ jack_driver_descriptor_add_parameter(desc, &filler, "autoconf", 'a', JackDriverParamBool, &value, NULL, "Whether to use Autoconfig, or just start.", NULL);
+
+ value.ui = 1U;
+ jack_driver_descriptor_add_parameter(desc, &filler, "redundancy", 'R', JackDriverParamUInt, &value, NULL, "Send packets N times", NULL);
+
+ value.ui = false;
+ jack_driver_descriptor_add_parameter(desc, &filler, "native-endian", 'e', JackDriverParamBool, &value, NULL, "Dont convert samples to network byte order.", NULL);
+
+ value.i = 0;
+ jack_driver_descriptor_add_parameter(desc, &filler, "jitterval", 'J', JackDriverParamInt, &value, NULL, "attempted jitterbuffer microseconds on master", NULL);
+
+ value.i = false;
+ jack_driver_descriptor_add_parameter(desc, &filler, "always-deadline", 'D', JackDriverParamBool, &value, NULL, "always use deadline", NULL);
return desc;
}