class Xmms::Collection
Constants
- ADD
- NS_ALL
- NS_COLLECTIONS
- NS_PLAYLISTS
- REMOVE
- RENAME
- TYPE_COMPLEMENT
- TYPE_EQUALS
- TYPE_GREATER
- TYPE_GREATEREQ
- TYPE_HAS
- TYPE_IDLIST
- TYPE_INTERSECTION
- TYPE_LIMIT
- TYPE_MATCH
- TYPE_MEDIASET
- TYPE_NOTEQUAL
- TYPE_ORDER
- TYPE_REFERENCE
- TYPE_SMALLER
- TYPE_SMALLEREQ
- TYPE_TOKEN
- TYPE_UNION
- TYPE_UNIVERSE
- UPDATE
Public Class Methods
c = Xmms::Collection.new(type)
click to toggle source
Returns a new Xmms::Collection object of type type.
static VALUE c_coll_init (VALUE self, VALUE type) { COLL_METHOD_HANDLER_HEADER coll->real = xmmsv_new_coll (check_int32 (type)); return self; }
c = Xmms::Collection.parse(pattern)
click to toggle source
Returns a collection matching a String pattern. See the wiki for details on how to construct a pattern string.
static VALUE c_coll_parse (VALUE klass, VALUE pattern) { VALUE obj = rb_obj_alloc (klass); RbCollection *coll = NULL; Data_Get_Struct (obj, RbCollection, coll); if (!xmmsv_coll_parse (StringValuePtr (pattern), &coll->real)) { rb_raise (ePatternError, "invalid pattern"); } return obj; }
c = Xmms::Collection.universe
click to toggle source
Returns a collection referencing the “All Media” set.
static VALUE c_coll_universe (VALUE klass) { VALUE obj = rb_obj_alloc (klass); RbCollection *coll = NULL; Data_Get_Struct (obj, RbCollection, coll); coll->real = xmmsv_new_coll (XMMS_COLLECTION_TYPE_UNIVERSE); return obj; }
Public Instance Methods
attributes
click to toggle source
Returns the attributes of the collection.
static VALUE c_coll_attributes (VALUE self) { RbCollection *coll = NULL; Data_Get_Struct (self, RbCollection, coll); if (NIL_P (coll->attributes)) coll->attributes = rb_class_new_instance (1, &self, cAttributes); return coll->attributes; }
complement → collection
click to toggle source
Returns a new collection that is the logical complement of c.
# File src/clients/lib/ruby/xmmsclient.rb, line 49 def complement c = Xmms::Collection.new(Xmms::Collection::TYPE_COMPLEMENT) c.operands << self c end
idlist
click to toggle source
Gets the list of media ids that make up the collection.
static VALUE c_coll_idlist_get (VALUE self) { VALUE ary = rb_ary_new (); xmmsv_t *ret = NULL; xmmsv_list_iter_t *it = NULL; int32_t entry; COLL_METHOD_ADD_HANDLER_RET (idlist_get) xmmsv_get_list_iter (ret, &it); for (xmmsv_list_iter_first (it); xmmsv_list_iter_valid (it); xmmsv_list_iter_next (it)) { xmmsv_list_iter_entry_int (it, &entry); rb_ary_push (ary, INT2NUM (entry)); } xmmsv_list_iter_explicit_destroy (it); return ary; }
idlist=(_idlist_)
click to toggle source
Sets the list of media ids that make up the collection.
static VALUE c_coll_idlist_set (VALUE self, VALUE ids) { int i; int *ary = NULL; VALUE *rb_ary; int rb_ary_len; Check_Type (ids, T_ARRAY); COLL_METHOD_HANDLER_HEADER rb_ary = RARRAY_PTR (ids); rb_ary_len = RARRAY_LEN (ids); ary = malloc (sizeof (int) * (rb_ary_len + 1)); for (i = 0; i < rb_ary_len; i++) ary[i] = NUM2INT (rb_ary[i]); ary[i] = 0; xmmsv_coll_set_idlist (coll->real, ary); return self; }
intersect(other) → collection
click to toggle source
Returns a new collection that is the logical AND of c and other.
# File src/clients/lib/ruby/xmmsclient.rb, line 37 def intersect(other) c = Xmms::Collection.new(Xmms::Collection::TYPE_INTERSECTION) c.operands << self c.operands << other c end
operands
click to toggle source
Gets a list of the operands that make up the collection.
static VALUE c_coll_operands (VALUE self) { RbCollection *coll = NULL; Data_Get_Struct (self, RbCollection, coll); if (NIL_P (coll->operands)) coll->operands = rb_class_new_instance (1, &self, cOperands); return coll->operands; }
type
click to toggle source
Returns the type of the collection as an Integer.
static VALUE c_coll_type_get (VALUE self) { xmmsc_coll_type_t ret; COLL_METHOD_ADD_HANDLER_RET (get_type) return INT2NUM (ret); }
union(other) → collection
click to toggle source
Returns a new collection that is the logical OR of c and other.
# File src/clients/lib/ruby/xmmsclient.rb, line 25 def union(other) c = Xmms::Collection.new(Xmms::Collection::TYPE_UNION) c.operands << self c.operands << other c end