51 lines
1.6 KiB
Zig
51 lines
1.6 KiB
Zig
|
const std = @import("std");
|
||
|
const io = std.io;
|
||
|
const heap = std.heap;
|
||
|
const json = std.json;
|
||
|
|
||
|
const battery = @import("modules/battery.zig");
|
||
|
const calendar = @import("modules/calendar.zig");
|
||
|
const display = @import("modules/display.zig");
|
||
|
const uptime = @import("modules/uptime.zig");
|
||
|
const Module = @import("module.zig");
|
||
|
|
||
|
pub fn main() !void {
|
||
|
var arena = heap.ArenaAllocator.init(heap.page_allocator);
|
||
|
defer arena.deinit();
|
||
|
|
||
|
const stdout_file = std.io.getStdOut().writer();
|
||
|
var bw = std.io.bufferedWriter(stdout_file);
|
||
|
const stdout = bw.writer();
|
||
|
|
||
|
try stdout.print("{{\"version\":1}}\n[\n", .{});
|
||
|
try bw.flush();
|
||
|
|
||
|
var _display = display.init(arena.allocator());
|
||
|
var _battery = battery.init(arena.allocator());
|
||
|
var _calendar = calendar.init(arena.allocator());
|
||
|
var modules = [_]Module{
|
||
|
_display.module,
|
||
|
_battery.module,
|
||
|
_calendar.module,
|
||
|
};
|
||
|
|
||
|
while (true) {
|
||
|
try stdout.print("[", .{});
|
||
|
for (modules) |module| {
|
||
|
try json.stringify(try module.getJson(), .{ .emit_null_optional_fields = false }, stdout);
|
||
|
try stdout.print(",", .{});
|
||
|
}
|
||
|
// try stdout.print("[", .{});
|
||
|
// try json.stringify(battery_json, .{ .emit_null_optional_fields = false }, stdout);
|
||
|
// try stdout.print(",", .{});
|
||
|
// try json.stringify(calendar_json, .{ .emit_null_optional_fields = false }, stdout);
|
||
|
// try stdout.print(",", .{});
|
||
|
// try stdout.print("{{\"full_text\":\"test\"}}", .{});
|
||
|
try stdout.print("],\n", .{});
|
||
|
|
||
|
try bw.flush();
|
||
|
_ = arena.reset(.retain_capacity);
|
||
|
std.time.sleep(1000_000_000);
|
||
|
}
|
||
|
}
|