Browse Source

Install the utilities

Martijn Braam 1 year ago
parent
commit
ee140b350e
3 changed files with 52 additions and 8 deletions
  1. 19 2
      meson.build
  2. 1 0
      src/parse.c
  3. 32 6
      util/findconfig.c

+ 19 - 2
meson.build

@@ -46,5 +46,22 @@ pkg_mod.generate(libraries: libmegapixels,
                 filebase: 'libmegapixels',
                 filebase: 'libmegapixels',
                 description: 'The camera control bits from Megapixels')
                 description: 'The camera control bits from Megapixels')
 
 
-executable('megapixels-findconfig', 'util/findconfig.c', link_with: libmegapixels, include_directories: inc)
-executable('megapixels-getframe', 'util/getframe.c', link_with: libmegapixels, include_directories: inc)
+executable('megapixels-findconfig', 'util/findconfig.c',
+    link_with: libmegapixels,
+    include_directories: inc,
+    install: true,
+    )
+executable('megapixels-getframe', 'util/getframe.c',
+    link_with: libmegapixels,
+    include_directories: inc,
+    install: true,
+    )
+
+install_data(
+    [
+        'config/pine64,pinephone.conf',
+        'config/pine64,pinetab.conf',
+        'config/purism,librem5.conf',
+    ],
+    install_dir: get_option('datadir') / 'megapixels/config/'
+)

+ 1 - 0
src/parse.c

@@ -38,6 +38,7 @@ find_path_for_devnode(struct media_v2_intf_devnode devnode)
 			return strdup(path);
 			return strdup(path);
 		}
 		}
 	}
 	}
+	return "";
 }
 }
 
 
 int
 int

+ 32 - 6
util/findconfig.c

@@ -1,23 +1,49 @@
 #include <libmegapixels.h>
 #include <libmegapixels.h>
 #include <stdio.h>
 #include <stdio.h>
 #include <limits.h>
 #include <limits.h>
+#include <getopt.h>
+#include <ctype.h>
 
 
 int
 int
-main()
+main(int argc, char *argv[])
 {
 {
+	int c;
+
 	char configpath[PATH_MAX];
 	char configpath[PATH_MAX];
 	int ret = libmegapixels_find_config(configpath);
 	int ret = libmegapixels_find_config(configpath);
 
 
+	while ((c = getopt(argc, argv, "c:")) != -1) {
+		switch (c) {
+			case 'c':
+				sprintf(configpath, "%s", optarg);
+				ret = 1;
+				break;
+			case '?':
+				if (optopt == 'd' || optopt == 'l') {
+					fprintf(stderr, "Option -%c requires an argument.\n", optopt);
+				} else if (isprint(optopt)) {
+					fprintf(stderr, "Unknown option '-%c'\n", optopt);
+				} else {
+					fprintf(stderr, "Unknown option character x%x\n", optopt);
+				}
+				return 1;
+			default:
+				return 1;
+		}
+	}
 
 
 	libmegapixels_devconfig *config = {0};
 	libmegapixels_devconfig *config = {0};
 
 
-	if (ret) {
-		printf("Using config: %s\n", configpath);
-		libmegapixels_load_file(&config, configpath);
-	} else {
+	if (!ret) {
 		printf("No config found\n");
 		printf("No config found\n");
-		libmegapixels_load_file(&config, "config/uvc.conf");
+		return 1;
 	}
 	}
+	printf("Using config: %s\n", configpath);
+
+	if (!libmegapixels_load_file(&config, configpath)) {
+		return 1;
+	}
+
 	printf("Device: %s %s\n", config->make, config->model);
 	printf("Device: %s %s\n", config->make, config->model);
 	printf("Found %d cameras\n", config->count);
 	printf("Found %d cameras\n", config->count);