summaryrefslogtreecommitdiff
path: root/src/player/player2.c
diff options
context:
space:
mode:
authorMichał Cichoń <michcic@gmail.com>2015-12-05 16:05:51 +0100
committerMichał Cichoń <michcic@gmail.com>2015-12-05 16:05:51 +0100
commitb0176f24ac3e68ef314a9a4ab87f6b2248777614 (patch)
tree99d27abdbc7d46e4af5bf563173c9edac6a0e1d7 /src/player/player2.c
parentb7a10d561acfa4cc7f8ae15722a7de28ee961d03 (diff)
downloadpianobar-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.c11
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;