summaryrefslogtreecommitdiff
path: root/xine_input_vdr.h
blob: 65716e3622e799e5ff8d0a3db352b3ba6f9d31f9 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
 * xine_input_vdr.h:  
 *
 * See the main source file 'xineliboutput.c' for copyright information and
 * how to reach the author.
 *
 * $Id: xine_input_vdr.h,v 1.5.2.2 2009-08-21 10:39:04 phintuka Exp $
 *
 */

#ifndef __XINE_INPUT_VDR_H_
#define __XINE_INPUT_VDR_H_

#if defined __cplusplus
extern "C" {
#endif

#include <xine/input_plugin.h>

#include "xine_input_vdr_mrl.h"

struct input_plugin_s;
struct vdr_input_plugin_if_s;
struct osd_command_s;
struct frontend_s;

typedef struct vdr_input_plugin_funcs_s {
  /* VDR --> input plugin (only local mode) */
  int  (*push_input_write)(struct input_plugin_s *, const char *, int);
  int  (*push_input_control)(struct input_plugin_s *, const char *);
  int  (*push_input_osd)(struct input_plugin_s *, struct osd_command_s *);
  /* input plugin --> frontend (only local mode) */
  void (*xine_input_event)(const char *, const char *);
  /* input plugin --> frontend (remote mode) */
  int  (*intercept_osd)(struct frontend_s *, struct osd_command_s *);
  /* input plugin --> frontend */
  void *(*fe_control)(struct frontend_s *, const char *);
  struct frontend_s *fe_handle;
  /* frontend --> input plugin (remote mode) */
  int  (*input_control)(struct input_plugin_s *, const char *, const char *, int, int);
} vdr_input_plugin_funcs_t;

typedef struct vdr_input_plugin_if_s {
  input_plugin_t           input_plugin;
  vdr_input_plugin_funcs_t f;
} vdr_input_plugin_if_t;

#define CONTROL_OK            0
#define CONTROL_UNKNOWN      -1 
#define CONTROL_PARAM_ERROR  -2 
#define CONTROL_DISCONNECTED -3

typedef struct grab_data_s {
  size_t  size;
  char   *data;
} grab_data_t;

#if defined __cplusplus
}
#endif


#endif /*__XINE_INPUT_VDR_H_*/