Set a default transport in the examples

Setting a default transport type avoids the need to explicitely set a
transport using the the new --transport command-line option. This also
preserves backwards compatibility with previous versions where the
option didn't exist yet.
This commit is contained in:
Jef Driesen 2017-12-26 11:48:28 +01:00
parent 630b5e7c3c
commit 6b50e7f959
9 changed files with 23 additions and 7 deletions

View File

@ -186,6 +186,19 @@ dctool_transport_name (dc_transport_t type)
return NULL; return NULL;
} }
dc_transport_t
dctool_transport_default (dc_descriptor_t *descriptor)
{
unsigned int transports = dc_descriptor_get_transports (descriptor);
for (size_t i = 0; i < C_ARRAY_SIZE (g_transports); ++i) {
if (transports & g_transports[i].type)
return g_transports[i].type;
}
return DC_TRANSPORT_NONE;
}
void void
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata) dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata)
{ {

View File

@ -49,6 +49,9 @@ dctool_transport_type (const char *name);
const char * const char *
dctool_transport_name (dc_transport_t type); dctool_transport_name (dc_transport_t type);
dc_transport_t
dctool_transport_default (dc_descriptor_t *descriptor);
void void
dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata); dctool_event_cb (dc_device_t *device, dc_event_type_t event, const void *data, void *userdata);

View File

@ -258,7 +258,7 @@ dctool_download_run (int argc, char *argv[], dc_context_t *context, dc_descripto
dc_buffer_t *fingerprint = NULL; dc_buffer_t *fingerprint = NULL;
dctool_output_t *output = NULL; dctool_output_t *output = NULL;
dctool_units_t units = DCTOOL_UNITS_METRIC; dctool_units_t units = DCTOOL_UNITS_METRIC;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;

View File

@ -114,7 +114,7 @@ dctool_dump_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
dc_status_t status = DC_STATUS_SUCCESS; dc_status_t status = DC_STATUS_SUCCESS;
dc_buffer_t *fingerprint = NULL; dc_buffer_t *fingerprint = NULL;
dc_buffer_t *buffer = NULL; dc_buffer_t *buffer = NULL;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;

View File

@ -113,7 +113,7 @@ dctool_fwupdate_run (int argc, char *argv[], dc_context_t *context, dc_descripto
{ {
int exitcode = EXIT_SUCCESS; int exitcode = EXIT_SUCCESS;
dc_status_t status = DC_STATUS_SUCCESS; dc_status_t status = DC_STATUS_SUCCESS;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;

View File

@ -102,7 +102,7 @@ dctool_read_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
int exitcode = EXIT_SUCCESS; int exitcode = EXIT_SUCCESS;
dc_status_t status = DC_STATUS_SUCCESS; dc_status_t status = DC_STATUS_SUCCESS;
dc_buffer_t *buffer = NULL; dc_buffer_t *buffer = NULL;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;

View File

@ -118,7 +118,7 @@ dctool_scan_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Parse the command-line options. // Parse the command-line options.
int opt = 0; int opt = 0;

View File

@ -101,7 +101,7 @@ dctool_timesync_run (int argc, char *argv[], dc_context_t *context, dc_descripto
{ {
int exitcode = EXIT_SUCCESS; int exitcode = EXIT_SUCCESS;
dc_status_t status = DC_STATUS_SUCCESS; dc_status_t status = DC_STATUS_SUCCESS;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;

View File

@ -102,7 +102,7 @@ dctool_write_run (int argc, char *argv[], dc_context_t *context, dc_descriptor_t
int exitcode = EXIT_SUCCESS; int exitcode = EXIT_SUCCESS;
dc_status_t status = DC_STATUS_SUCCESS; dc_status_t status = DC_STATUS_SUCCESS;
dc_buffer_t *buffer = NULL; dc_buffer_t *buffer = NULL;
dc_transport_t transport = DC_TRANSPORT_NONE; dc_transport_t transport = dctool_transport_default (descriptor);
// Default option values. // Default option values.
unsigned int help = 0; unsigned int help = 0;