And this attempt works now. I guess this is adequate to release
as a throw away implementation to replace later with something better.
Also add strip="symbols" for release builds to get it down to a lean
3.2M size.
Use an enum of values for level:
0 - auto
1 - low
2 - high
3 - manual
4 - peak_performance
If any out of range are given, return an false. If unable to write
or open for writing, return false. May change to give an err type
instead later if that helps client side.
Added a dbus service file so we can own the
com.steampowered.SteamOSManager1 name.
Also added a systemd service file
Also add a dbus .conf file to allow any process to talk
to manager for now.
Will likely move api methods out to be more generic, but this
runs for now and gives true on success, false on failure, etc.
May also need to change from process.poll to wait for longer
running scripts. will do once tested more.
Usually when building a library we don't ship Cargo.lock, since
binary using our library should control versions. Since we are
an application though, ship Cargo.lock to lock versions of
dependencies.
Much of this will change, but needed something to start with.
Based on notes at https://gitlab.steamos.cloud/jupiter/tasks/-/issues/894
Use objectserver to get introspection done for us.
Change to session bus for now since system bus will need
a config file to allow us to take the name. Will add later.
Implement one quick say_hello dbus method to start.
Add copyright headers.
Use zbus to register the bus name.
Use async_std to get dbus session connection.
Added missing interface_name in SmDbusApi.
Removed parameters from SmDbusApi since those are passed, but not
kept with the method definition, etc.
Added some structures, enums, etc. to hold the data we will need.
Added an initialize_apis that only looks for config files so far.
TODO:
Use zbus to create our service, register the name, etc. to start.
Decide on a config file format (maybe after getting some zbus
details fleshed out and knowing better what will fit well)
Add error messages and don't fail on errors, just log them.