From 48f6b1eec70ae0a028a511c12a54cc8a0d17b970 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Sat, 31 Dec 2011 07:16:55 +0100 Subject: [PATCH] Add a command line parameter to specify the model code. --- examples/universal.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/universal.c b/examples/universal.c index edcae96..69cfdf0 100644 --- a/examples/universal.c +++ b/examples/universal.c @@ -549,6 +549,7 @@ usage (const char *filename) fprintf (stderr, " %s [options] devname\n\n", filename); fprintf (stderr, "Options:\n\n"); fprintf (stderr, " -b name Set backend name (required).\n"); + fprintf (stderr, " -t model Set model code.\n"); fprintf (stderr, " -f hexdata Set fingerprint data.\n"); fprintf (stderr, " -l logfile Set logfile.\n"); fprintf (stderr, " -d filename Download dives.\n"); @@ -573,7 +574,7 @@ usage (const char *filename) static device_status_t -dowork (device_type_t backend, const char *devname, const char *rawfile, const char *xmlfile, int memory, int dives, dc_buffer_t *fingerprint) +dowork (device_type_t backend, unsigned int model, const char *devname, const char *rawfile, const char *xmlfile, int memory, int dives, dc_buffer_t *fingerprint) { device_status_t rc = DEVICE_STATUS_SUCCESS; @@ -635,7 +636,7 @@ dowork (device_type_t backend, const char *devname, const char *rawfile, const c rc = mares_puck_device_open (&device, devname); break; case DEVICE_TYPE_MARES_DARWIN: - rc = mares_darwin_device_open (&device, devname, 0); + rc = mares_darwin_device_open (&device, devname, model); break; case DEVICE_TYPE_MARES_ICONHD: rc = mares_iconhd_device_open (&device, devname); @@ -771,16 +772,20 @@ main (int argc, char *argv[]) const char *xmlfile = "output.xml"; const char *devname = NULL; const char *fingerprint = NULL; + unsigned int model = 0; int memory = 0, dives = 0; #ifndef _MSC_VER // Parse command-line options. int opt = 0; - while ((opt = getopt (argc, argv, "b:f:l:m:d:c:h")) != -1) { + while ((opt = getopt (argc, argv, "b:t:f:l:m:d:c:h")) != -1) { switch (opt) { case 'b': backend = lookup_type (optarg); break; + case 't': + model = strtoul (optarg, NULL, 0); + break; case 'f': fingerprint = optarg; g_cachedir_read = 0; @@ -834,7 +839,7 @@ main (int argc, char *argv[]) message_set_logfile (logfile); dc_buffer_t *fp = fpconvert (fingerprint); - device_status_t rc = dowork (backend, devname, rawfile, xmlfile, memory, dives, fp); + device_status_t rc = dowork (backend, model, devname, rawfile, xmlfile, memory, dives, fp); dc_buffer_free (fp); message ("Result: %s\n", errmsg (rc));