picoproj: issue a warning when passing "-f" more than once
[libam7xxx.git] / examples / picoproj.c
index 105169c..e18cc7d 100644 (file)
@@ -74,6 +74,8 @@ int main(int argc, char *argv[])
        while ((opt = getopt(argc, argv, "f:F:l:p:W:H:h")) != -1) {
                switch (opt) {
                case 'f':
        while ((opt = getopt(argc, argv, "f:F:l:p:W:H:h")) != -1) {
                switch (opt) {
                case 'f':
+                       if (filename[0] != '\0')
+                               fprintf(stderr, "Warning: image file already specified\n");
                        strncpy(filename, optarg, FILENAME_MAX);
                        break;
                case 'F':
                        strncpy(filename, optarg, FILENAME_MAX);
                        break;
                case 'F':
@@ -155,7 +157,7 @@ int main(int argc, char *argv[])
        }
        size = st.st_size;
 
        }
        size = st.st_size;
 
-       image = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, image_fd, 0);
+       image = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, image_fd, 0);
        if (image == NULL) {
                perror("mmap");
                exit_code = EXIT_FAILURE;
        if (image == NULL) {
                perror("mmap");
                exit_code = EXIT_FAILURE;
@@ -209,6 +211,10 @@ int main(int argc, char *argv[])
                goto cleanup;
        }
 
                goto cleanup;
        }
 
+       if ((unsigned int)width > device_info.native_width ||
+           (unsigned int)height > device_info.native_height)
+               fprintf(stderr, "WARNING: image not fitting the native resolution, it may be displayed wrongly!\n");
+
        ret = am7xxx_send_image(dev, format, width, height, image, size);
        if (ret < 0) {
                perror("am7xxx_send_image");
        ret = am7xxx_send_image(dev, format, width, height, image, size);
        if (ret < 0) {
                perror("am7xxx_send_image");