summaryrefslogtreecommitdiff
path: root/src/player/player2_private.h
blob: 054b81fd96ff4f1d6290f6d1a9a04469133914cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef __PIANOBAR_PLAYER2_PRIVATE_H__
#define __PIANOBAR_PLAYER2_PRIVATE_H__
#pragma once

#include "config.h"
#include <stdbool.h>
#include "player2.h"

typedef struct _player2_iface
{
    const char*     Name;
    player2_t     (*Create)        ();
    void          (*Destroy)       (player2_t player);
    void          (*SetVolume)     (player2_t player, float volume);
    float         (*GetVolume)     (player2_t player);
    void          (*SetGain)       (player2_t player, float gainDb);
    float         (*GetGain)       (player2_t player);
    double        (*GetDuration)   (player2_t player);
    double        (*GetTime)       (player2_t player);
    bool          (*Open)          (player2_t player, const char* url);
    bool          (*Play)          (player2_t player);
    bool          (*Pause)         (player2_t player);
    bool          (*Stop)          (player2_t player);
    bool          (*Finish)        (player2_t player);
    bool          (*IsPlaying)     (player2_t player);
    bool          (*IsPaused)      (player2_t player);
    bool          (*IsStopped)     (player2_t player);
    bool          (*IsFinished)    (player2_t player);
} player2_iface;

extern player2_iface player2_direct_show;
extern player2_iface player2_windows_media_foundation;

#endif /* __PIANOBAR_PLAYER2_PRIVATE_H__ */