Class: SDL2::Mixer::Channels::Group

Inherits:
Object
  • Object
show all
Defined in:
mixer.c,
mixer.c

Overview

This class represents a channel group. A channel group is a set of channels and you can stop playing and fade out playing channels of an group at the same time.

Each channel group is identified by an integer called tag.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tag) ⇒ Object

Initialize the channel with given tag.

Groups with a common tag are identified.

Parameters:

  • tag (Integer)

    channel indentifier



553
554
555
556
557
# File 'mixer.c', line 553

static VALUE Group_initialize(VALUE self, VALUE tag)
{
    rb_iv_set(self, "@tag", tag);
    return Qnil;
}

Instance Attribute Details

#tagInteger (readonly)

Returns tag id.

Returns:

  • (Integer)

    tag id

Class Method Details

.defaultSDL2::Mixer::Channels::Group

Get the default channel group.

The default channel group refers all channels in the mixer system.



566
567
568
569
570
# File 'mixer.c', line 566

static VALUE Group_s_default(VALUE self)
{
    VALUE tag = INT2FIX(-1);
    return rb_class_new_instance(1, &tag, self);
}

Instance Method Details

#==(other) ⇒ Boolean

Return true if self and other are same.

self and other are considered to be same if they have the same tag.

Parameters:

Returns:

  • (Boolean)


592
593
594
595
596
# File 'mixer.c', line 592

static VALUE Group_eq(VALUE self, VALUE other)
{
    return INT2BOOL(rb_obj_is_instance_of(other, cGroup) &&
                    Group_tag(self) == Group_tag(other));
}

#add(which) ⇒ nil

Add a channel to the group.

Parameters:

  • which (Integer)

    a channel id

Returns:

  • (nil)


605
606
607
608
609
610
611
612
# File 'mixer.c', line 605

static VALUE Group_add(VALUE self, VALUE which)
{
    if (!Mix_GroupChannel(NUM2INT(which), Group_tag(self))) {
        SDL_SetError("Cannot add channel %d", NUM2INT(which));
        SDL_ERROR();
    }
    return Qnil;
}

#availableInteger

Return the first available channel in the group.

Return -1 if no channel is available.

Returns:

  • (Integer)


631
632
633
634
# File 'mixer.c', line 631

static VALUE Group_available(VALUE self)
{
    return INT2NUM(Mix_GroupAvailable(Group_tag(self)));
}

#countInteger

Get the number of channels belong to the group.

Returns:

  • (Integer)


619
620
621
622
# File 'mixer.c', line 619

static VALUE Group_count(VALUE self)
{
    return INT2NUM(Mix_GroupCount(Group_tag(self)));
}

#fade_out(ms) ⇒ Integer

Halt playing of all channels in the group with fade-out effect.

Parameters:

  • ms (Integer)

    milliseconds of fade-out effect

Returns:

  • (Integer)

    the number of channels affected by this method

See Also:



669
670
671
672
# File 'mixer.c', line 669

static VALUE Group_fade_out(VALUE self, VALUE ms)
{
    return INT2NUM(Mix_FadeOutGroup(Group_tag(self), NUM2INT(ms)));
}

#haltnil

Halt playing of all channels in the group.



681
682
683
684
685
# File 'mixer.c', line 681

static VALUE Group_halt(VALUE self)
{
    Mix_HaltGroup(Group_tag(self));
    return Qnil;
}

#newerInteger

Return the newer cahnnel in the group.

Return -1 if no channel is available.

Returns:

  • (Integer)


655
656
657
658
# File 'mixer.c', line 655

static VALUE Group_newer(VALUE self)
{
    return INT2NUM(Mix_GroupNewer(Group_tag(self)));
}

#oldestInteger

Return the oldest cahnnel in the group.

Return -1 if no channel is available.

Returns:

  • (Integer)


643
644
645
646
# File 'mixer.c', line 643

static VALUE Group_oldest(VALUE self)
{
    return INT2NUM(Mix_GroupOldest(Group_tag(self)));
}