# InfiniTime

This is a go library for interfacing with InfiniTime firmware
over BLE on Linux.

---

### Dependencies

This library requires `dbus`, `bluez`, `playerctl`, and `pactl` to function. The first two are for bluetooth, and the last two for music control.

#### Arch

```shell
sudo pacman -S dbus bluez playerctl --needed
```

#### Debian/Ubuntu

```shell
sudo apt install dbus bluez playerctl
```

#### Fedora

```shell
sudo dnf install dbus bluez playerctl
```

`pactl` comes with `pulseaudio` or `pipewire-pulse` and should therefore be installed on most systems already.

---

### Features

This library currently supports the following features:

- Notifications
- Heart rate monitoring
- Setting time
- Battery level
- Music control
- OTA firmware upgrades

---

### Mentions

The DFU process used in this library was created with the help of [siglo](https://github.com/alexr4535/siglo)'s source code. Specifically, this file: [ble_dfu.py](https://github.com/alexr4535/siglo/blob/main/src/ble_dfu.py)