~ubuntu-branches/ubuntu/precise/me-tv/precise-proposed

« back to all changes in this revision

Viewing changes to src/libdvbapi/dvbca.h

  • Committer: Bazaar Package Importer
  • Author(s): Philipp Kern
  • Date: 2008-07-23 14:03:56 UTC
  • mfrom: (1.1.3 upstream) (3.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080723140356-m6ze7fbkydes42c7
Tags: 0.5.33-3
Fix xine-lib ffmpeg dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * libdvbca - interface onto raw CA devices
3
 
 *
4
 
 * Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
5
 
 *
6
 
 * This library is free software; you can redistribute it and/or
7
 
 * modify it under the terms of the GNU Lesser General Public
8
 
 * License as published by the Free Software Foundation; either
9
 
 * version 2.1 of the License, or (at your option) any later version.
10
 
 *
11
 
 * This library is distributed in the hope that it will be useful,
12
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
 * Lesser General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU Lesser General Public
17
 
 * License along with this library; if not, write to the Free Software
18
 
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
19
 
 */
20
 
 
21
 
#ifndef LIBDVBCA_H
22
 
#define LIBDVBCA_H 1
23
 
 
24
 
#ifdef __cplusplus
25
 
extern "C"
26
 
{
27
 
#endif
28
 
 
29
 
#include <stdint.h>
30
 
 
31
 
/**
32
 
 * The types of CA interface we support.
33
 
 */
34
 
#define DVBCA_INTERFACE_LINK 0
35
 
#define DVBCA_INTERFACE_HLCI 1
36
 
 
37
 
/**
38
 
 * States a CAM in a slot can be in.
39
 
 */
40
 
#define DVBCA_CAMSTATE_MISSING 0
41
 
#define DVBCA_CAMSTATE_INITIALISING 1
42
 
#define DVBCA_CAMSTATE_READY 2
43
 
 
44
 
 
45
 
/**
46
 
 * Open a CA device. Multiple CAMs can be accessed through a CA device.
47
 
 *
48
 
 * @param adapter Index of the DVB adapter.
49
 
 * @param cadevice Index of the CA device on that adapter (usually 0).
50
 
 * @return A unix file descriptor on success, or -1 on failure.
51
 
 */
52
 
extern int dvbca_open(int adapter, int cadevice);
53
 
 
54
 
/**
55
 
 * Reset a CAM.
56
 
 *
57
 
 * @param fd File handle opened with dvbca_open.
58
 
 * @param slot Slot where the requested CAM is in.
59
 
 * @return 0 on success, -1 on failure.
60
 
 */
61
 
extern int dvbca_reset(int fd, uint8_t slot);
62
 
 
63
 
/**
64
 
 * Get the interface type of a CAM.
65
 
 *
66
 
 * @param fd File handle opened with dvbca_open.
67
 
 * @param slot Slot where the requested CAM is in.
68
 
 * @return One of the DVBCA_INTERFACE_* values, or -1 on failure.
69
 
 */
70
 
extern int dvbca_get_interface_type(int fd, uint8_t slot);
71
 
 
72
 
/**
73
 
 * Get the state of a CAM.
74
 
 *
75
 
 * @param fd File handle opened with dvbca_open.
76
 
 * @param slot Slot where the requested CAM is in.
77
 
 * @return One of the DVBCA_CAMSTATE_* values, or -1 on failure.
78
 
 */
79
 
extern int dvbca_get_cam_state(int fd, uint8_t slot);
80
 
 
81
 
/**
82
 
 * Write a message to a CAM using a link-layer interface.
83
 
 *
84
 
 * @param fd File handle opened with dvbca_open.
85
 
 * @param slot Slot where the requested CAM is in.
86
 
 * @param connection_id Connection ID of the message.
87
 
 * @param data Data to write.
88
 
 * @param data_length Number of bytes to write.
89
 
 * @return 0 on success, or -1 on failure.
90
 
 */
91
 
extern int dvbca_link_write(int fd, uint8_t slot, uint8_t connection_id,
92
 
                            uint8_t *data, uint16_t data_length);
93
 
 
94
 
/**
95
 
 * Read a message from a CAM using a link-layer interface.
96
 
 *
97
 
 * @param fd File handle opened with dvbca_open.
98
 
 * @param slot Slot where the responding CAM is in.
99
 
 * @param connection_id Destination for the connection ID the message came from.
100
 
 * @param data Data that was read.
101
 
 * @param data_length Max number of bytes to read.
102
 
 * @return Number of bytes read on success, or -1 on failure.
103
 
 */
104
 
extern int dvbca_link_read(int fd, uint8_t *slot, uint8_t *connection_id,
105
 
                           uint8_t *data, uint16_t data_length);
106
 
 
107
 
// FIXME how do we determine which CAM slot of a CA is meant?
108
 
/**
109
 
 * Write a message to a CAM using an HLCI interface.
110
 
 *
111
 
 * @param fd File handle opened with dvbca_open.
112
 
 * @param data Data to write.
113
 
 * @param data_length Number of bytes to write.
114
 
 * @return 0 on success, or -1 on failure.
115
 
 */
116
 
extern int dvbca_hlci_write(int fd, uint8_t *data, uint16_t data_length);
117
 
 
118
 
// FIXME how do we determine which CAM slot of a CA is meant?
119
 
/**
120
 
 * Read a message from a CAM using an HLCI interface.
121
 
 *
122
 
 * @param fd File handle opened with dvbca_open.
123
 
 * @param app_tag Application layer tag giving the message type to read.
124
 
 * @param data Data that was read.
125
 
 * @param data_length Max number of bytes to read.
126
 
 * @return Number of bytes read on success, or -1 on failure.
127
 
 */
128
 
extern int dvbca_hlci_read(int fd, uint32_t app_tag, uint8_t *data,
129
 
                           uint16_t data_length);
130
 
 
131
 
#ifdef __cplusplus
132
 
}
133
 
#endif
134
 
 
135
 
#endif // LIBDVBCA_H