diff --git a/src/main.zig b/src/main.zig index 45de154..c0342ec 100644 --- a/src/main.zig +++ b/src/main.zig @@ -25,11 +25,12 @@ var exit_loop: bool = false; const CliArgs = struct { hef_file_path: []const u8, gst_source_path: []const u8, + test_mode: bool, }; pub fn main() !void { - var args: CliArgs = .{ .hef_file_path = undefined, .gst_source_path = undefined }; + var args: CliArgs = .{ .hef_file_path = undefined, .gst_source_path = undefined, .test_mode = false }; std.posix.sigaction(std.posix.SIG.INT, &std.posix.Sigaction { .handler = .{ @@ -48,8 +49,6 @@ pub fn main() !void { std.debug.print("Program started\n", .{}); - // This allows me to utilize the same command line args and gstreamer - gst.init(@ptrCast(&std.os.argv.len), @ptrCast(&std.os.argv.ptr)); var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); @@ -65,6 +64,10 @@ pub fn main() !void { while (arg_source.next()) |cur_arg| { + if (std.mem.eql(u8, cur_arg, "--help") or std.mem.eql(u8, cur_arg, "-h")) { + std.debug.print("Expected usage: \n`--hef --gst-source `\n`--test-mode`\n", .{}); + std.process.exit(0); + } if (std.mem.eql(u8, cur_arg, "--hef")) { if (arg_source.next()) |x| { @@ -82,6 +85,18 @@ pub fn main() !void { std.process.fatal("--gst-source flag specified, but no value provided!\n", .{}); } } + if (std.mem.eql(u8, cur_arg, "--test-mode")) { + args.test_mode = true; + } + } + + if (args.test_mode) { + std.debug.print("Entering test mode!\n", .{}); + while (!exit_loop) { + std.time.sleep(1 * 1000 * 1000); // sleep for 1 second + std.debug.print("Person found! Confidence: 0.8, 0.4:0.2, 0.6:0.8\n", .{}); // x:y, to x:y + } + std.process.exit(0); } if (!gst_set) { @@ -91,6 +106,9 @@ pub fn main() !void { std.process.fatal("Invalid usage. --hef value is required\n", .{}); } + // This allows me to utilize the same command line args and gstreamer + gst.init(@ptrCast(&std.os.argv.len), @ptrCast(&std.os.argv.ptr)); + std.debug.print("Using hardcoded hef file path :P\n", .{}); std.fs.cwd().access(hef_file, .{ }) catch |e| { @@ -268,8 +286,7 @@ pub fn main() !void { if (status == hlo.HAILO_SUCCESS) { for (0..(output_data.len / 5)) |x| { if (output_data[x] == 1.0) { - - std.debug.print("Person found! Confidence: {d}, {d}:{d}, {d}, {d}\n", .{ output_data[x + 1], output_data[x + 2], output_data[x + 3], output_data[x + 4], output_data[x + 5] }); + std.debug.print("Person found! Confidence: {d}, {d}:{d}, {d}:{d}\n", .{ output_data[x + 1], output_data[x + 2], output_data[x + 3], output_data[x + 4], output_data[x + 5] }); } }