summaryrefslogtreecommitdiff
path: root/osd.h
blob: 2beb31ee66fa85e3d52e954afef8f1f689ee9bb5 (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
35
36
37
38
39
40
41
42
43
44
//////////////////////////////////////////////////////////////////////////////
///                                                                        ///
/// This file is part of the VDR mpv plugin and licensed under AGPLv3      ///
///                                                                        ///
/// See the README file for copyright information                          ///
///                                                                        ///
//////////////////////////////////////////////////////////////////////////////

#ifndef __MPV_OSD_H
#define __MPV_OSD_H

#include <vdr/osd.h>
#include "player.h"

class cMpvOsdProvider:public cOsdProvider
{
  private:
    cMpvPlayer *Player;

  public:
    cMpvOsdProvider(cMpvPlayer *player);
    virtual cOsd *CreateOsd(int Left, int Top, uint Level);
    virtual bool ProvidesTrueColor();
};

class cMpvOsd:public cOsd
{
  private:
    void WriteToMpv(int sw, int sh, int x, int y, int w, int h, const uint8_t * argb);

    cMpvPlayer *Player;
    int fdOsd;
    char *pOsd;

  protected:
    virtual void SetActive(bool On);

  public:
    cMpvOsd(int Left, int Top, uint Level, cMpvPlayer *player);
    virtual ~cMpvOsd();
    virtual void Flush(void);
};

#endif