diff options
author | Michał Cichoń <michcic@gmail.com> | 2015-12-05 16:05:51 +0100 |
---|---|---|
committer | Michał Cichoń <michcic@gmail.com> | 2015-12-05 16:05:51 +0100 |
commit | b0176f24ac3e68ef314a9a4ab87f6b2248777614 (patch) | |
tree | 99d27abdbc7d46e4af5bf563173c9edac6a0e1d7 /src/player/player2.c | |
parent | b7a10d561acfa4cc7f8ae15722a7de28ee961d03 (diff) | |
download | pianobar-windows-b0176f24ac3e68ef314a9a4ab87f6b2248777614.tar.gz pianobar-windows-b0176f24ac3e68ef314a9a4ab87f6b2248777614.tar.bz2 pianobar-windows-b0176f24ac3e68ef314a9a4ab87f6b2248777614.zip |
Add 'player' configuration option to select player back end. Current valid values:
- 'ds' - for Direct Show
- 'mf' - for Windows Media Foundation (default)
If not present, backends will be initialized in order: mf, ds
Diffstat (limited to 'src/player/player2.c')
-rw-r--r-- | src/player/player2.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/player/player2.c b/src/player/player2.c index c95600c..cd9beae 100644 --- a/src/player/player2.c +++ b/src/player/player2.c @@ -28,6 +28,7 @@ THE SOFTWARE. #include "config.h" #include "player2_private.h" #include <stdlib.h> +#include <string.h> #include <memory.h> # define length_of(x) (sizeof(x)/sizeof(*(x))) @@ -44,7 +45,7 @@ struct _player_t player2_t player; }; -bool BarPlayer2Init(player2_t* outPlayer) +bool BarPlayer2Init(player2_t* outPlayer, const char* defaultPlayer) { player2_t player; struct _player_t result; @@ -56,7 +57,13 @@ bool BarPlayer2Init(player2_t* outPlayer) { player2_iface* backend = player2_backends[i]; - result.player = backend->Create(); + bool acceptPlayer = true; + if (defaultPlayer && !(strcmp(backend->Id, defaultPlayer) == 0)) + acceptPlayer = false; + + if (acceptPlayer) + result.player = backend->Create(); + if (result.player) { result.backend = backend; |