diff options
| author | 2003-01-15 13:14:47 +0000 | |
|---|---|---|
| committer | 2003-01-15 13:14:47 +0000 | |
| commit | 2ecf31c96d7a1dac61188c247ca7fe6a65e6b578 (patch) | |
| tree | 989c38c69220302994efff1b2eaa2d6bfce9b9db /src/raw1394.h | |
| parent | implement 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.h | 15 |
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); |
