Age | Commit message (Collapse) | Author | Files | Lines |
|
We now really transfer the file to the Media Server
(Rygel e.g.) when the initial POST upload function has
succeeded.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
|
|
|
|
getPostFile() does not fail anymore when creating a new
folder (return value was incorrect).
Media Plugin list API now directly returns JSON, with track
list array indexed as "list".
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
|
|
|
|
This commits introduces several evolutions.
- the install and uninstall api are now available
- some responses are embedded in objects
- utils-jbus is updated to a more upstream version
Change-Id: Ica37ae4b36e6ea0c7e824b730cc157040cdd77ce
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
|
|
We now return a JSON object instead of an arbitrary string
with the "list" API.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
We no longer fail if init() is called multiple times
(typical refresh case).
We now support a "seek?value=<seconds>" API.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
The code was asking to disconnect from dbus even if not connected.
The library dbus aborts the program in that case. Ouch...
That is now taken into account and don't fail more.
Change-Id: I088ef547f6a415e0adb795ac2e64233fd45dc945
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
|
|
Media Plugin now supports a "upload?value=<file>" API.
Add Media Plugin requirements to README.md.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
We can now play/pause/stop a track after having chosen its
index number (default is 0).
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Listing content had various pointer-related issues.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Add a Media Plugin, based off Rygel (UPnP), with only an
initialization and a "list" function for now.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
If PulseAudio development libraries are present, Audio
plugin will now support it. It may still fall back to
ALSA if a PulseAudio server is not found at runtime.
PulseAudio backend supports multiple clients using
one audio adapter.
(+ various fixes and style improvements)
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Audio and Radio plugins init() functions were re-creating
a new client context each time, but it is actually unwanted
as afb-radio <TokenRefresh> widgets uses this function to
initialize AND refresh the context.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Mute status on Porter/Koelsch is reversed, take this
into account.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Token/Session Plugin is now able to issue a globally-valid
token (re-useable with all Plugins, so that an application
using multiple plugins is not forced to manage multiple
tokens anymore).
Adapt Audio & Radio Plugins to this model (init functions
do not create a token anymore, check for a prior existing
one).
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Author: Fulup Ar Foll <fulup@iot.bzh>
Author: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Audio plugin was crashing due to new client context model
misuse.
Muting/demuting sound did fail on Porter/Koelsch boards,
because their audio cards do not obey standards found on
desktop systems.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
We should not free() a dlopened pointer.
Internal plugin handle was renamed, adapt radio plugin.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
|
|
We need the global handle in requests, and in the free
function.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
|
|
|
|
|
|
Change-Id: I01776950ddb1328957a8f59f7316aab1ad223f9a
|
|
README.md now mentions D-Bus.
Checking dbus presence is now done at the same place as
json-c, libmicrohttpdd...
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
You can now set the volume for multiple channels
independantly by using the "value=<1>,<2>..." syntax.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
afb-daemon now gracefully exits if no plugins are present.
HelloWorld's API has been renamed to "hello".
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Change-Id: I369b4905c7d53669a0ebd581759a2aa67ff6b9c6
|
|
Change-Id: Ib0bfba52aac8a60afc9a80a564202689e28b18ff
|
|
|
|
|
|
|
|
Porter/Koelsch do not expose a standard "Master" playback
mixer on their default interface, as it is common with
desktop audio cards. Add a bit of discovery logic for this.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
radio-api/audio-api.so were not valid, because they were
not linked correctly with librtlsdr/ALSA.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
|
|
Each API now compiles to a ".so" file, which gets searched
for in the "${libdir}/afb" directory at startup.
We can now load an arbitrary number of plugins (> 10).
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Radio and Audio API functions do not cross-call themselves
directly anymore ; this is necessary to have independent
plugin binaries (.so) in the near future.
(PS : audio buffer securization is WIP)
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
|
|
Passing floats between functions seems to cause problems...
not sure why ; anyway, fix this by using a double variable.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Fixed the following :
- in some cases, powering off a playing radio would block ;
- Radio API "mode" should be "AM/FM", not "true/false".
Radio and Audio APIs now have dedicated functions to ping
status and refresh a session token.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Signed-off-by: Manuel Bachmann <mbc@iot.bzh>
|
|
|
|
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|
|
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
|