# RPI player

Will be a simple media player frontend for raspberry pis based on SDL2. Think like oldschool mp4 players.

The idea is to make it super simple and efficient so that it can be used on a pi zero with small lcd screens.

## Compilation

Will only work on linux! Works on the rasberry pi.

### Dependencies

Arch/Manjaro:

``` 
pacman -S --needed scons pkgconf gcc yasm libevent
```

Debian/Raspian:

```
sudo apt-get install build-essential scons pkg-config libudev-dev yasm libevent libevent-dev
```

Optionally if you install MariaDB/MySQL and/or PostgreSQL the compile system should pick it up. Make sure to get a version
whoch contains the development headers (A bunch of .h files).

### Initial setup

clone this repo, then call `scons`, it will clone rcpp cms into a new engine directory. Run this every time you update the project.
You don't have to run it before / between builds.

```
# git clone https://github.com/Relintai/rcpp_sample_simple_data_collector_app.git rcpp_sample_simple_data_collector_app
# cd school_industrial_comm_2021
# scons
```

Now you can build the project like: `scons bl`.  ([b]uild [l]inux)

Adding -jX to the build command will run the build on that many threads. Like: `scons bl -j4`.

```
# scons bl -j4
- or -
# ./build.sh
```
Now you can run it.

First run migrations, this will create the necessary database tables:

```
# ./engine/bin/server m
- or -
# ./migrate.sh
```

Now you can start the server:

```
# ./engine/bin/server
- or -
# ./run.sh
```

Make sure to run it from the project's directory, as it needs data files.

Now just open http://127.0.0.1:8080

You can push floats to the "a/b" MQTT topics, and the new values will be save in the `database.sqlite` file, and will appear
in your browser.

If you have mosqitto installed you can use the `publish_random_data.py` or `publish_data.sh` scripts to automatically
push things into the proper MQTT topic.

## Structure

The main Application implementation is `app/ic_application.h`.

The `main.cpp` contains the initialization code for the framework.

The `content/www` folder is the wwwroot.
