/* * Method: get_assoc_entry(id, method, flags, format, value) { ... } * id: the ID of the index writer. * method: the lookup method to use (see Gst::Index::LookupMethod). * flags: flags for the entry (see Gst::Index::AssocFlags). * format: a Gst::Format object. * value: the value to find. * * Finds the given format/value in the index. If a block is given, it will be * called as a compare function, passing references to 2 Gst::IndexEntry objects, * and waiting for a boolean as the return value. * * Returns: the entry associated with the value (as a Gst::IndexEntry object), or nil * if the value is not found. */ static VALUE rb_gst_index_get_assoc_entry (VALUE self, VALUE id, VALUE method, VALUE flags, VALUE format, VALUE value) { GstIndexEntry *index_entry; if (rb_block_given_p () == Qfalse) index_entry = gst_index_get_assoc_entry (RGST_INDEX (self), FIX2INT (id), RVAL2GENUM (method, GST_TYPE_INDEX_LOOKUP_METHOD), RVAL2GFLAGS (flags, GST_TYPE_ASSOC_FLAGS), *RGST_FORMAT (format), NUM2ULL (value)); else index_entry = gst_index_get_assoc_entry_full (RGST_INDEX (self), FIX2INT (id), RVAL2GENUM (method, GST_TYPE_INDEX_LOOKUP_METHOD), RVAL2GFLAGS (flags, GST_TYPE_ASSOC_FLAGS), *RGST_FORMAT (format), NUM2ULL (value), __compare, (gpointer) rb_block_proc ()); return index_entry != NULL ? RGST_INDEX_ENTRY_NEW (index_entry) : Qnil; }
/** * gst_index_get_assoc_entry: * @index: the index to search * @id: the id of the index writer * @method: The lookup method to use * @flags: Flags for the entry * @format: the format of the value * @value: the value to find * * Finds the given format/value in the index * * Returns: the entry associated with the value or NULL if the * value was not found. */ GstIndexEntry * gst_index_get_assoc_entry (GstIndex * index, gint id, GstIndexLookupMethod method, GstIndexAssociationFlags flags, GstFormat format, gint64 value) { g_return_val_if_fail (GST_IS_INDEX (index), NULL); if (id == -1) return NULL; return gst_index_get_assoc_entry_full (index, id, method, flags, format, value, gst_index_compare_func, NULL); }