aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/video4linux
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2012-04-08 11:59:46 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-07 15:28:35 -0400
commitc53c2549333b340e2662dc64ec81323476b69a97 (patch)
tree4bd55780eba1302caaf7359631b996043dc1082f /Documentation/video4linux
parenta22d85fea89744fad2cb215da1fe0c1ce226a613 (diff)
[media] v4l2-event: Add v4l2_subscribed_event_ops
Just like with ctrl events, drivers may want to get called back on listener add / remove for other event types too. Rather then special casing all of this in subscribe / unsubscribe event it is better to use ops for this. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation/video4linux')
-rw-r--r--Documentation/video4linux/v4l2-framework.txt28
1 files changed, 21 insertions, 7 deletions
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt
index e3dfc268d9c1..369d4bc87828 100644
--- a/Documentation/video4linux/v4l2-framework.txt
+++ b/Documentation/video4linux/v4l2-framework.txt
@@ -945,21 +945,35 @@ fast.
945 945
946Useful functions: 946Useful functions:
947 947
948- v4l2_event_queue() 948void v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev)
949 949
950 Queue events to video device. The driver's only responsibility is to fill 950 Queue events to video device. The driver's only responsibility is to fill
951 in the type and the data fields. The other fields will be filled in by 951 in the type and the data fields. The other fields will be filled in by
952 V4L2. 952 V4L2.
953 953
954- v4l2_event_subscribe() 954int v4l2_event_subscribe(struct v4l2_fh *fh,
955 struct v4l2_event_subscription *sub, unsigned elems,
956 const struct v4l2_subscribed_event_ops *ops)
955 957
956 The video_device->ioctl_ops->vidioc_subscribe_event must check the driver 958 The video_device->ioctl_ops->vidioc_subscribe_event must check the driver
957 is able to produce events with specified event id. Then it calls 959 is able to produce events with specified event id. Then it calls
958 v4l2_event_subscribe() to subscribe the event. The last argument is the 960 v4l2_event_subscribe() to subscribe the event.
959 size of the event queue for this event. If it is 0, then the framework
960 will fill in a default value (this depends on the event type).
961 961
962- v4l2_event_unsubscribe() 962 The elems argument is the size of the event queue for this event. If it is 0,
963 then the framework will fill in a default value (this depends on the event
964 type).
965
966 The ops argument allows the driver to specify a number of callbacks:
967 * add: called when a new listener gets added (subscribing to the same
968 event twice will only cause this callback to get called once)
969 * del: called when a listener stops listening
970 * replace: replace event 'old' with event 'new'.
971 * merge: merge event 'old' into event 'new'.
972 All 4 callbacks are optional, if you don't want to specify any callbacks
973 the ops argument itself maybe NULL.
974
975int v4l2_event_unsubscribe(struct v4l2_fh *fh,
976 struct v4l2_event_subscription *sub)
963 977
964 vidioc_unsubscribe_event in struct v4l2_ioctl_ops. A driver may use 978 vidioc_unsubscribe_event in struct v4l2_ioctl_ops. A driver may use
965 v4l2_event_unsubscribe() directly unless it wants to be involved in 979 v4l2_event_unsubscribe() directly unless it wants to be involved in
@@ -968,7 +982,7 @@ Useful functions:
968 The special type V4L2_EVENT_ALL may be used to unsubscribe all events. The 982 The special type V4L2_EVENT_ALL may be used to unsubscribe all events. The
969 drivers may want to handle this in a special way. 983 drivers may want to handle this in a special way.
970 984
971- v4l2_event_pending() 985int v4l2_event_pending(struct v4l2_fh *fh)
972 986
973 Returns the number of pending events. Useful when implementing poll. 987 Returns the number of pending events. Useful when implementing poll.
974 988