diff options
| author | 2002-12-24 03:01:11 +0000 | |
|---|---|---|
| committer | 2002-12-24 03:01:11 +0000 | |
| commit | 385413d23e8efab86d391bfa09776bfbdbab30ff (patch) | |
| tree | 84b9025faa6d9103820a286aee87caa04f2c64b6 /src/raw1394.h | |
| parent | oops, 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.h | 24 |
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); |
