summaryrefslogtreecommitdiffstats
path: root/src/raw1394.h
diff options
context:
space:
mode:
authorGravatar dmaas 2003-01-15 13:14:47 +0000
committerGravatar dmaas 2003-01-15 13:14:47 +0000
commit2ecf31c96d7a1dac61188c247ca7fe6a65e6b578 (patch)
tree989c38c69220302994efff1b2eaa2d6bfce9b9db /src/raw1394.h
parentimplement tag matching for rawiso reception (diff)
add iso_xmit_sync() and iso_xmit_write(); clean up iso handling a bit
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@102 53a565d1-3bb7-0310-b661-cf11e63c67ab
Diffstat (limited to '')
-rw-r--r--src/raw1394.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/raw1394.h b/src/raw1394.h
index d0b0794..15401d2 100644
--- a/src/raw1394.h
+++ b/src/raw1394.h
@@ -66,6 +66,12 @@ enum raw1394_iso_disposition {
/* return from raw1394_loop_iterate() immediately, which will return an error */
RAW1394_ISO_ERROR = 2,
+
+ /* return from raw1394_loop_iterate() immediately, and stop receiving packets */
+ RAW1394_ISO_STOP = 3,
+
+ /* (transmission only) - like ISO_STOP, but don't wait for the buffer to empty */
+ RAW1394_ISO_STOP_NOSYNC = 4,
};
#ifdef __cplusplus
@@ -120,6 +126,15 @@ 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, int tag_mask, int sync);
+/* write() style API - do NOT use this if you have set an xmit_handler
+ * if buffer is full, waits for more space UNLESS the file descriptor is
+ * set to non-blocking, in which case xmit_write() will return -1 with errno = EAGAIN */
+int raw1394_iso_xmit_write(raw1394handle_t handle, unsigned char *data, unsigned int len,
+ unsigned char tag, unsigned char sy);
+
+/* wait until all queued packets have been sent */
+int raw1394_iso_xmit_sync(raw1394handle_t handle);
+
void raw1394_iso_stop(raw1394handle_t handle);
void raw1394_iso_shutdown(raw1394handle_t handle);