summaryrefslogtreecommitdiffstats
path: root/src/raw1394.h
diff options
context:
space:
mode:
authorGravatar dmaas 2002-12-24 03:01:11 +0000
committerGravatar dmaas 2002-12-24 03:01:11 +0000
commit385413d23e8efab86d391bfa09776bfbdbab30ff (patch)
tree84b9025faa6d9103820a286aee87caa04f2c64b6 /src/raw1394.h
parentoops, irq_interval needs to be signed (diff)
update iso API for multi-channel reception and new packet buffer layout
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@98 53a565d1-3bb7-0310-b661-cf11e63c67ab
Diffstat (limited to 'src/raw1394.h')
-rw-r--r--src/raw1394.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/raw1394.h b/src/raw1394.h
index 7dc567d..c3e8c04 100644
--- a/src/raw1394.h
+++ b/src/raw1394.h
@@ -55,7 +55,7 @@ enum raw1394_iso_speed {
RAW1394_ISO_SPEED_400 = 2,
};
-/* return values from xmit/recv handlers */
+/* return values from isochronous xmit/recv handlers */
enum raw1394_iso_disposition {
/* continue on to the next packet */
@@ -72,14 +72,16 @@ enum raw1394_iso_disposition {
extern "C" {
#endif
+/* handlers for transmitting/receiving isochronous packets */
+
typedef enum raw1394_iso_disposition (*raw1394_iso_xmit_handler_t)(raw1394handle_t,
unsigned char *data,
unsigned int *len,
unsigned char *tag,
unsigned char *sy,
- unsigned int cycle,
+ int cycle, /* -1 if unknown */
unsigned int dropped);
-
+
typedef enum raw1394_iso_disposition (*raw1394_iso_recv_handler_t)(raw1394handle_t,
unsigned char *data,
unsigned int len,
@@ -93,7 +95,7 @@ int raw1394_iso_xmit_init(raw1394handle_t handle,
raw1394_iso_xmit_handler_t handler,
unsigned int buf_packets,
unsigned int max_packet_size,
- int channel,
+ unsigned char channel,
enum raw1394_iso_speed speed,
int irq_interval);
@@ -101,13 +103,23 @@ int raw1394_iso_recv_init(raw1394handle_t handle,
raw1394_iso_recv_handler_t handler,
unsigned int buf_packets,
unsigned int max_packet_size,
- int channel,
+ unsigned char channel,
int irq_interval);
+int raw1394_iso_multichannel_recv_init(raw1394handle_t handle,
+ raw1394_iso_recv_handler_t handler,
+ unsigned int buf_packets,
+ unsigned int max_packet_size,
+ int irq_interval);
+
+/* listen/unlisten on a specific channel (multi-channel mode ONLY) */
+int raw1394_iso_recv_listen_channel(raw1394handle_t handle, unsigned char channel);
+int raw1394_iso_recv_unlisten_channel(raw1394handle_t handle, unsigned char channel);
+int raw1394_iso_recv_set_channel_mask(raw1394handle_t handle, u_int64_t mask);
int raw1394_iso_xmit_start(raw1394handle_t handle, int start_on_cycle, int prebuffer_packets);
int raw1394_iso_recv_start(raw1394handle_t handle, int start_on_cycle);
-
+
void raw1394_iso_stop(raw1394handle_t handle);
void raw1394_iso_shutdown(raw1394handle_t handle);