mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2025-03-01 10:35:23 +00:00
119 lines
2.0 KiB
C
119 lines
2.0 KiB
C
#ifndef _DDDVB_H_
|
|
#define _DDDVB_H_
|
|
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <pthread.h>
|
|
#include <sys/ioctl.h>
|
|
|
|
#include <linux/dvb/dmx.h>
|
|
#include <linux/dvb/frontend.h>
|
|
#include <linux/dvb/video.h>
|
|
#include <linux/dvb/net.h>
|
|
|
|
|
|
#define DDDVB_MAX_DVB_FE 256
|
|
|
|
#define DDDVB_MAX_SOURCE 4
|
|
|
|
#define MAX_PMT 16
|
|
|
|
|
|
struct dddvb_params {
|
|
uint32_t param[32];
|
|
uint8_t pid[1024];
|
|
};
|
|
|
|
struct dddvb_status {
|
|
struct dddvb_params params;
|
|
fe_status_t stat;
|
|
int64_t strength;
|
|
int64_t snr;
|
|
};
|
|
|
|
struct dddvb_fe {
|
|
struct dddvb *dd;
|
|
uint32_t state;
|
|
pthread_t pt;
|
|
pthread_mutex_t mutex;
|
|
char name[120];
|
|
|
|
uint32_t source;
|
|
#define DDDVB_FE_SOURCE_DEMOD 0
|
|
#define DDDVB_FE_SOURCE_SATIP 1
|
|
#define DDDVB_FE_SOURCE_RTP 2
|
|
#define DDDVB_FE_SOURCE_MCAST 3
|
|
|
|
uint32_t modulation;
|
|
#define DDDVB_MODULATION_DVB_C 1
|
|
#define DDDVB_MODULATION_DVB_S 2
|
|
#define DDDVB_MODULATION_DVB_T 3
|
|
|
|
uint32_t nr;
|
|
uint32_t type;
|
|
uint32_t anum;
|
|
uint32_t fnum;
|
|
|
|
uint32_t scif_type;
|
|
uint32_t scif_slot;
|
|
uint32_t scif_freq;
|
|
uint32_t input;
|
|
|
|
uint32_t lof1[DDDVB_MAX_SOURCE];
|
|
uint32_t lof2[DDDVB_MAX_SOURCE];
|
|
uint32_t lofs[DDDVB_MAX_SOURCE];
|
|
uint32_t prev_delay[DDDVB_MAX_SOURCE];
|
|
|
|
int fd;
|
|
int dmx;
|
|
|
|
fe_status_t stat;
|
|
uint32_t level;
|
|
uint32_t lock;
|
|
uint32_t quality;
|
|
int64_t strength;
|
|
int64_t cnr;
|
|
int first;
|
|
|
|
uint32_t tune;
|
|
struct dddvb_params param;
|
|
|
|
uint32_t n_tune;
|
|
struct dddvb_params n_param;
|
|
|
|
struct dddvb_status status;
|
|
};
|
|
|
|
struct dddvb {
|
|
pthread_mutex_t lock;
|
|
pthread_mutex_t uni_lock;
|
|
|
|
char config[80];
|
|
|
|
uint32_t state;
|
|
|
|
uint32_t dvbnum;
|
|
uint32_t dvbtnum;
|
|
uint32_t dvbs2num;
|
|
uint32_t dvbt2num;
|
|
uint32_t dvbcnum;
|
|
uint32_t dvbc2num;
|
|
|
|
uint32_t dvbfe_num;
|
|
uint32_t scif_type;
|
|
|
|
struct dddvb_fe dvbfe[DDDVB_MAX_DVB_FE];
|
|
};
|
|
|
|
int dddvb_dvb_init(struct dddvb *dd);
|
|
int parse_config(struct dddvb *dd, char *name, char *sec,
|
|
void (*cb)(struct dddvb *, char *, char *) );
|
|
void dddvb_fe_handle(struct dddvb_fe *fe);
|
|
int dddvb_fe_tune(struct dddvb_fe *fe, struct dddvb_params *p);
|
|
int dddvb_fe_start(struct dddvb_fe *fe);
|
|
|
|
|
|
|
|
#endif /* _DDDVB_H_ */
|