Sets our main struct and passes it to the parent class.
Create a new file descriptor set. If @controllable, it is possible to restart or flush a call to gst_poll_wait() with gst_poll_restart() and gst_poll_set_flushing() respectively.
Create a new poll object that can be used for scheduling cancellable timeouts.
Add a file descriptor to the file descriptor set.
Check if @fd in @set has data to be read.
Check if @fd in @set can be used for writing.
Control whether the descriptor @fd in @set will be monitored for readability.
Control whether the descriptor @fd in @set will be monitored for writability.
Check if @fd in @set has closed the connection.
Check if @fd in @set has an error.
Mark @fd as ignored so that the next call to gst_poll_wait() will yield the same result for @fd as last time. This function must be called if no operation (read/write/recv/send/etc.) will be performed on @fd before the next call to gst_poll_wait().
Free a file descriptor set.
Get the main Gtk struct
Get a GPollFD for the reading part of the control socket. This is useful when integrating with a GSource and GMainLoop.
the main Gtk struct as a void*
Read a byte from the control socket of the controllable @set.
Remove a file descriptor from the file descriptor set.
Restart any gst_poll_wait() that is in progress. This function is typically used after adding or removing descriptors to @set.
When @controllable is %TRUE, this function ensures that future calls to gst_poll_wait() will be affected by gst_poll_restart() and gst_poll_set_flushing().
When @flushing is %TRUE, this function ensures that current and future calls to gst_poll_wait() will return -1, with errno set to EBUSY.
Wait for activity on the file descriptors in @set. This function waits up to the specified @timeout. A timeout of #GST_CLOCK_TIME_NONE waits forever.
Write a byte to the control socket of the controllable @set. This function is mostly useful for timer #GstPoll objects created with gst_poll_new_timer().
A #GstPoll keeps track of file descriptors much like fd_set (used with select()) or a struct pollfd array (used with poll()). Once created with gst_poll_new(), the set can be used to wait for file descriptors to be readable and/or writable. It is possible to make this wait be controlled by specifying %TRUE for the @controllable flag when creating the set (or later calling gst_poll_set_controllable()).
New file descriptors are added to the set using gst_poll_add_fd(), and removed using gst_poll_remove_fd(). Controlling which file descriptors should be waited for to become readable and/or writable are done using gst_poll_fd_ctl_read() and gst_poll_fd_ctl_write().
Use gst_poll_wait() to wait for the file descriptors to actually become readable and/or writable, or to timeout if no file descriptor is available in time. The wait can be controlled by calling gst_poll_restart() and gst_poll_set_flushing().
Once the file descriptor set has been waited for, one can use gst_poll_fd_has_closed() to see if the file descriptor has been closed, gst_poll_fd_has_error() to see if it has generated an error, gst_poll_fd_can_read() to see if it is possible to read from the file descriptor, and gst_poll_fd_can_write() to see if it is possible to write to it.