From: Antonio Ospite Date: Mon, 17 Sep 2012 08:07:55 +0000 (+0200) Subject: examples: support multiple devices X-Git-Tag: v0.1.3~14 X-Git-Url: https://git.ao2.it/libam7xxx.git/commitdiff_plain/068e5d1ff2bb37f35dc754ba6a112f5b80ae44fd examples: support multiple devices Expose a '-d ' option to set the device index, this way multiple devices can be used. Tested-by: Konstantin Lohmann --- diff --git a/doc/man/am7xxx-play.1.txt b/doc/man/am7xxx-play.1.txt index 098e556..eabdb9c 100644 --- a/doc/man/am7xxx-play.1.txt +++ b/doc/man/am7xxx-play.1.txt @@ -21,6 +21,10 @@ decode the input, encode it to jpeg and display it with libam7xxx. OPTIONS ------- + +*-d* '':: + the device index (default is 0) + *-f* '':: the input device format diff --git a/doc/man/picoproj.1.txt b/doc/man/picoproj.1.txt index 263b0df..0fea153 100644 --- a/doc/man/picoproj.1.txt +++ b/doc/man/picoproj.1.txt @@ -23,6 +23,9 @@ larger than the device native resolution can be wrongly displayed. OPTIONS ------- +*-d* '':: + the device index (default is 0) + *-f* '':: the image file to upload diff --git a/examples/am7xxx-play.c b/examples/am7xxx-play.c index 6d5d3c7..668c18c 100644 --- a/examples/am7xxx-play.c +++ b/examples/am7xxx-play.c @@ -581,6 +581,7 @@ static void usage(char *name) { printf("usage: %s [OPTIONS]\n\n", name); printf("OPTIONS:\n"); + printf("\t-d \t\tthe device index (default is 0)\n"); printf("\t-f \tthe input device format\n"); printf("\t-i \t\tthe input path\n"); printf("\t-o \t\ta comma separated list of input format options\n"); @@ -622,14 +623,23 @@ int main(int argc, char *argv[]) unsigned int upscale = 0; unsigned int quality = 95; int log_level = AM7XXX_LOG_INFO; + int device_index = 0; am7xxx_power_mode power_mode = AM7XXX_POWER_LOW; am7xxx_zoom_mode zoom = AM7XXX_ZOOM_ORIGINAL; int format = AM7XXX_IMAGE_FORMAT_JPEG; am7xxx_context *ctx; am7xxx_device *dev; - while ((opt = getopt(argc, argv, "f:i:o:s:uF:q:l:p:z:h")) != -1) { + while ((opt = getopt(argc, argv, "d:f:i:o:s:uF:q:l:p:z:h")) != -1) { switch (opt) { + case 'd': + device_index = atoi(optarg); + if (device_index < 0) { + fprintf(stderr, "Unsupported device index\n"); + ret = -EINVAL; + goto out; + } + break; case 'f': input_format_string = strdup(optarg); break; @@ -797,7 +807,7 @@ int main(int argc, char *argv[]) am7xxx_set_log_level(ctx, log_level); - ret = am7xxx_open_device(ctx, &dev, 0); + ret = am7xxx_open_device(ctx, &dev, device_index); if (ret < 0) { perror("am7xxx_open_device"); goto cleanup; diff --git a/examples/picoproj.c b/examples/picoproj.c index 54cbedf..b13a67c 100644 --- a/examples/picoproj.c +++ b/examples/picoproj.c @@ -35,6 +35,7 @@ static void usage(char *name) { printf("usage: %s [OPTIONS]\n\n", name); printf("OPTIONS:\n"); + printf("\t-d \t\tthe device index (default is 0)\n"); printf("\t-f \t\tthe image file to upload\n"); printf("\t-F \t\tthe image format to use (default is JPEG)\n"); printf("\t\t\t\tSUPPORTED FORMATS:\n"); @@ -66,6 +67,7 @@ int main(int argc, char *argv[]) am7xxx_context *ctx; am7xxx_device *dev; int log_level = AM7XXX_LOG_INFO; + int device_index = 0; am7xxx_power_mode power_mode = AM7XXX_POWER_LOW; am7xxx_zoom_mode zoom = AM7XXX_ZOOM_ORIGINAL; int format = AM7XXX_IMAGE_FORMAT_JPEG; @@ -75,8 +77,15 @@ int main(int argc, char *argv[]) unsigned int size; am7xxx_device_info device_info; - while ((opt = getopt(argc, argv, "f:F:l:p:z:W:H:h")) != -1) { + while ((opt = getopt(argc, argv, "d:f:F:l:p:z:W:H:h")) != -1) { switch (opt) { + case 'd': + device_index = atoi(optarg); + if (device_index < 0) { + fprintf(stderr, "Unsupported device index\n"); + exit(EXIT_FAILURE); + } + break; case 'f': if (filename[0] != '\0') fprintf(stderr, "Warning: image file already specified\n"); @@ -220,7 +229,7 @@ int main(int argc, char *argv[]) goto cleanup; } - ret = am7xxx_open_device(ctx, &dev, 0); + ret = am7xxx_open_device(ctx, &dev, device_index); if (ret < 0) { perror("am7xxx_open_device"); exit_code = EXIT_FAILURE;