diff options
author | Todd Wright | 2014-03-10 16:08:31 -0400 |
---|---|---|
committer | Martin Szulecki | 2014-03-12 20:13:17 +0100 |
commit | fb4b91d7916e2b63b323fe98e1b1449d077ab469 (patch) | |
tree | 189d4210fe6c91e042124d23c3a36e3e1191af87 /tools/idevicescreenshot.c | |
parent | ae06fef34f66c9e6c32181568a84b5f0ee7e761b (diff) | |
download | libimobiledevice-fb4b91d7916e2b63b323fe98e1b1449d077ab469.tar.gz libimobiledevice-fb4b91d7916e2b63b323fe98e1b1449d077ab469.tar.bz2 |
idevicescreenshot: Allow user-specified output filename
Signed-off-by: Martin Szulecki <m.szulecki@libimobiledevice.org>
Diffstat (limited to 'tools/idevicescreenshot.c')
-rw-r--r-- | tools/idevicescreenshot.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/tools/idevicescreenshot.c b/tools/idevicescreenshot.c index 8f5fcaf..486265e 100644 --- a/tools/idevicescreenshot.c +++ b/tools/idevicescreenshot.c @@ -40,6 +40,7 @@ int main(int argc, char **argv) int result = -1; int i; const char *udid = NULL; + char *filename = NULL; /* parse cmdline args */ for (i = 1; i < argc; i++) { @@ -60,6 +61,10 @@ int main(int argc, char **argv) print_usage(argc, argv); return 0; } + else if (argv[i][0] != '-' && !filename) { + filename = strdup(argv[i]); + continue; + } else { print_usage(argc, argv); return 0; @@ -88,10 +93,12 @@ int main(int argc, char **argv) printf("Could not connect to screenshotr!\n"); } else { char *imgdata = NULL; - char filename[36]; uint64_t imgsize = 0; - time_t now = time(NULL); - strftime(filename, 36, "screenshot-%Y-%m-%d-%H-%M-%S.tiff", gmtime(&now)); + if (!filename) { + time_t now = time(NULL); + filename = (char*)malloc(36); + strftime(filename, 36, "screenshot-%Y-%m-%d-%H-%M-%S.tiff", gmtime(&now)); + } if (screenshotr_take_screenshot(shotr, &imgdata, &imgsize) == SCREENSHOTR_E_SUCCESS) { FILE *f = fopen(filename, "wb"); if (f) { @@ -118,6 +125,7 @@ int main(int argc, char **argv) lockdownd_service_descriptor_free(service); idevice_free(device); + free(filename); return result; } @@ -127,9 +135,11 @@ void print_usage(int argc, char **argv) char *name = NULL; name = strrchr(argv[0], '/'); - printf("Usage: %s [OPTIONS]\n", (name ? name + 1: argv[0])); + printf("Usage: %s [OPTIONS] [FILE]\n", (name ? name + 1: argv[0])); printf("Gets a screenshot from a device.\n"); - printf("The screenshot is saved as a TIFF image in the current directory.\n"); + printf("The screenshot is saved as a TIFF image with the given FILE name,\n"); + printf("where the default name is \"screenshot-DATE.tiff\", e.g.:\n"); + printf(" ./screenshot-2013-12-31-23-59-59.tiff\n\n"); printf("NOTE: A mounted developer disk image is required on the device, otherwise\n"); printf("the screenshotr service is not available.\n\n"); printf(" -d, --debug\t\tenable communication debugging\n"); |