libdvbv5  1.12.3
Library to work with Digital TV devices on Linux
dvb-dev.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016 - Mauro Carvalho Chehab
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation version 2.1 of the License.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16  * Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
17  */
18 
19 #ifndef _DVB_DEV_H
20 #define _DVB_DEV_H
21 
22 #include "dvb-fe.h"
23 #include "dvb-scan.h"
24 #include <config.h>
25 
26 #include <linux/dvb/dmx.h>
27 
66 };
67 
85 struct dvb_dev_list {
86  char *syspath;
87  char *path;
88  char *sysname;
90  char *bus_addr;
91  char *bus_id;
92  char *manufacturer;
93  char *product;
94  char *serial;
95 };
96 
109 };
110 
120 typedef int (*dvb_dev_change_t)(char *sysname,
121  enum dvb_dev_change_type type);
122 
128 struct dvb_open_descriptor;
129 
139 struct dvb_device {
140  /* Digital TV device lists */
143 
144  /* Digital TV frontend access */
146 };
147 
158 struct dvb_device *dvb_dev_alloc(void);
159 
166 void dvb_dev_free(struct dvb_device *dvb);
167 
191 int dvb_dev_find(struct dvb_device *dvb, dvb_dev_change_t handler);
192 
207  unsigned int adapter,
208  unsigned int num,
209  enum dvb_dev_type type);
210 
221 void dvb_dev_stop_monitor(struct dvb_device *dvb);
222 
239 void dvb_dev_set_log(struct dvb_device *dvb,
240  unsigned verbose,
241  dvb_logfunc logfunc);
242 
266 struct dvb_open_descriptor *dvb_dev_open(struct dvb_device *dvb,
267  const char *sysname, int flags);
268 
276 void dvb_dev_close(struct dvb_open_descriptor *open_dev);
277 
290 ssize_t dvb_dev_read(struct dvb_open_descriptor *open_dev,
291  void *buf, size_t count);
292 
306 void dvb_dev_dmx_stop(struct dvb_open_descriptor *open_dev);
307 
324 int dvb_dev_set_bufsize(struct dvb_open_descriptor *open_dev,
325  int buffersize);
326 
351  int pid, dmx_pes_type_t type,
352  dmx_output_t output, int buffersize);
353 
377  int pid, unsigned filtsize,
378  unsigned char *filter,
379  unsigned char *mask,
380  unsigned char *mode,
381  unsigned int flags);
382 
398 int dvb_dev_dmx_get_pmt_pid(struct dvb_open_descriptor *open_dev, int sid);
399 
421 struct dvb_v5_descriptors *dvb_dev_scan(struct dvb_open_descriptor *open_dev,
422  struct dvb_entry *entry,
423  check_frontend_t *check_frontend,
424  void *args,
425  unsigned other_nit,
426  unsigned timeout_multiply);
427 
428 /* From dvb-dev-remote.c */
429 
430 #ifdef HAVE_DVBV5_REMOTE
431 
432 #define REMOTE_BUF_SIZE (87 * 188) /* 16356 bytes */
433 
434 
448 int dvb_dev_remote_init(struct dvb_device *d, char *server, int port);
449 
450 #else
451 
452 static inline int dvb_dev_remote_init(struct dvb_device *d, char *server,
453  int port)
454 {
455  return -1;
456 };
457 
458 #endif
459 
460 
461 #endif
struct dvb_entry * entry
Definition: dvb-scan.h:90
void dvb_dev_stop_monitor(struct dvb_device *dvb)
Stop the dvb_dev_find loop.
char * manufacturer
Definition: dvb-dev.h:92
ssize_t dvb_dev_read(struct dvb_open_descriptor *open_dev, void *buf, size_t count)
read from a dvb demux or dvr file
int dvb_dev_dmx_set_pesfilter(struct dvb_open_descriptor *open_dev, int pid, dmx_pes_type_t type, dmx_output_t output, int buffersize)
Start a filter for a MPEG-TS Packetized Elementary Stream (PES)
dvb_dev_type
Type of a device entry to search.
Definition: dvb-dev.h:59
void(* dvb_logfunc)(int level, const char *fmt,...)
typedef used by dvb_fe_open2 for the log function
Definition: dvb-log.h:44
char * path
Definition: dvb-dev.h:87
int dvb_dev_find(struct dvb_device *dvb, dvb_dev_change_t handler)
finds all DVB devices on the local machine
char * product
Definition: dvb-dev.h:93
void dvb_dev_close(struct dvb_open_descriptor *open_dev)
Closes a dvb device.
int num_devices
Definition: dvb-dev.h:142
int dvb_dev_dmx_set_section_filter(struct dvb_open_descriptor *open_dev, int pid, unsigned filtsize, unsigned char *filter, unsigned char *mask, unsigned char *mode, unsigned int flags)
Sets a MPEG-TS section filter.
char * serial
Definition: dvb-dev.h:94
struct dvb_device * dvb_dev_alloc(void)
Allocate a struct dvb_device.
void dvb_dev_dmx_stop(struct dvb_open_descriptor *open_dev)
Stops the demux filter for a given file descriptor.
int( check_frontend_t)(void *args, struct dvb_v5_fe_parms *parms)
Callback for the application to show the frontend status.
Definition: dvb-scan.h:293
void dvb_dev_set_log(struct dvb_device *dvb, unsigned verbose, dvb_logfunc logfunc)
Sets the DVB verbosity and log function.
Keeps data needed to handle the DVB frontend.
Definition: dvb-fe.h:117
struct dvb_v5_descriptors * dvb_dev_scan(struct dvb_open_descriptor *open_dev, struct dvb_entry *entry, check_frontend_t *check_frontend, void *args, unsigned other_nit, unsigned timeout_multiply)
Scans a DVB dvb_add_scaned_transponder.
Provides interfaces to scan programs inside MPEG-TS digital TV streams.
void dvb_dev_free(struct dvb_device *dvb)
free a struct dvb_device
Digital TV device node properties.
Definition: dvb-dev.h:85
dvb_dev_change_type
Describes the type of change to be notifier_delay.
Definition: dvb-dev.h:105
struct dvb_dev_list * dvb_dev_seek_by_sysname(struct dvb_device *dvb, unsigned int adapter, unsigned int num, enum dvb_dev_type type)
Find a device that matches the search criteria given by this functions&#39;s parameters.
struct dvb_dev_list * devices
Definition: dvb-dev.h:141
char * bus_id
Definition: dvb-dev.h:91
struct dvb_v5_fe_parms * fe_parms
Definition: dvb-dev.h:145
char * syspath
Definition: dvb-dev.h:86
Opaque struct with a DVB open file descriptor.
int dvb_dev_dmx_get_pmt_pid(struct dvb_open_descriptor *open_dev, int sid)
read the contents of the MPEG-TS PAT table, seeking for an specific service ID
Represents one entry on a DTV file.
Definition: dvb-file.h:104
struct dvb_open_descriptor * dvb_dev_open(struct dvb_device *dvb, const char *sysname, int flags)
Opens a dvb device.
Contains the descriptors needed to scan the Service ID and other relevant info at a MPEG-TS Digital T...
Definition: dvb-scan.h:87
char * bus_addr
Definition: dvb-dev.h:90
Provides interfaces to deal with DVB frontend.
int dvb_dev_remote_init(struct dvb_device *d, char *server, int port)
initialize the dvb-dev to use a remote device running the dvbv5-daemon.
char * sysname
Definition: dvb-dev.h:88
enum dvb_dev_type dvb_type
Definition: dvb-dev.h:89
int dvb_dev_set_bufsize(struct dvb_open_descriptor *open_dev, int buffersize)
Start a demux or dvr buffer size.
Digital TV list of devices.
Definition: dvb-dev.h:139
int(* dvb_dev_change_t)(char *sysname, enum dvb_dev_change_type type)
Describes a callback for dvb_dev_find()
Definition: dvb-dev.h:120