Module: SDL2::Mixer::MusicChannel

Defined in:
mixer.c,
mixer.c

Overview

This module provides the functions to play Music.

Class Method Summary collapse

Class Method Details

.fade_in(music, loops, ms, pos = 0) ⇒ nil

Note:

the meaning of loop is different from Channels.play.

Play music loops times with fade-in effect.

Parameters:

  • music (SDL2::Mixer::Music)

    music to play

  • loops (Integer)

    number of times to play the music. 0 plays the music zero times. -1 plays the music forever.

  • ms (Integer)

    milliseconds for the fade-in effect

  • pos (Float) (defaults to: 0)

    the position to play from. The meaning of “position” is different for the type of music sources.

Returns:

  • (nil)

See Also:



724
725
726
727
728
729
730
731
732
733
# File 'mixer.c', line 724

static VALUE MusicChannel_s_fade_in(int argc, VALUE* argv, VALUE self)
{
    VALUE music, loops, fade_in_ms, pos;
    rb_scan_args(argc, argv, "31", &music, &loops, &fade_in_ms, &pos);
    HANDLE_MIX_ERROR(Mix_FadeInMusicPos(Get_Mix_Music(music), NUM2INT(loops), 
                                        NUM2INT(fade_in_ms),
                                        pos == Qnil ? 0 : NUM2DBL(pos)));
    playing_music = music;
    return Qnil;
}

.fade_out(ms) ⇒ nil

Halt the music playback with fade-out effect.

Returns:

  • (nil)


828
829
830
831
# File 'mixer.c', line 828

static VALUE MusicChannel_s_fade_out(VALUE self, VALUE fade_out_ms)
{
    Mix_FadeOutMusic(NUM2INT(fade_out_ms)); return Qnil;
}

.fadingInteger

Get the fading state of the music playback.

The return value is one of the following:

Returns:

  • (Integer)

See Also:



864
865
866
867
# File 'mixer.c', line 864

static VALUE MusicChannel_s_fading(VALUE self)
{
    return INT2NUM(Mix_FadingMusic());
}

.haltnil

Halt the music playback.

Returns:

  • (nil)


817
818
819
820
# File 'mixer.c', line 817

static VALUE MusicChannel_s_halt(VALUE self)
{
    Mix_HaltMusic(); return Qnil;
}

.pausenil

Pause the playback of the music channel.

Returns:

  • (nil)

See Also:



771
772
773
774
# File 'mixer.c', line 771

static VALUE MusicChannel_s_pause(VALUE self)
{
    Mix_PauseMusic(); return Qnil;
}

.pause?Boolean

Return true if a music playback is paused.

Returns:

  • (Boolean)


844
845
846
847
# File 'mixer.c', line 844

static VALUE MusicChannel_s_pause_p(VALUE self)
{
    return INT2BOOL(Mix_PausedMusic());
}

.play(music, loops) ⇒ nil

Note:

the meaning of loop is different from Channels.play.

Play music loops times.

Parameters:

  • music (SDL2::Mixer::Music)

    music to play

  • loops (Integer)

    number of times to play the music. 0 plays the music zero times. -1 plays the music forever.

Returns:

  • (nil)

See Also:



699
700
701
702
703
704
# File 'mixer.c', line 699

static VALUE MusicChannel_s_play(VALUE self, VALUE music, VALUE loops)
{
    HANDLE_MIX_ERROR(Mix_PlayMusic(Get_Mix_Music(music), NUM2INT(loops)));
    playing_music = music;
    return Qnil;
}

.play?Boolean

Return true if a music is playing.

Returns:

  • (Boolean)


836
837
838
839
# File 'mixer.c', line 836

static VALUE MusicChannel_s_play_p(VALUE self)
{
    return INT2BOOL(Mix_PlayingMusic());
}

.playing_musicSDL2::Mixer::Music?

Get the SDL2::Mixer::Music object that most recently played.

Return nil if no music object is played yet.

Returns:



876
877
878
879
# File 'mixer.c', line 876

static VALUE MusicChannel_s_playing_music(VALUE self)
{
    return playing_music;
}

.resumenil

Resume the playback of the music channel.

Returns:

  • (nil)

See Also:



784
785
786
787
# File 'mixer.c', line 784

static VALUE MusicChannel_s_resume(VALUE self)
{
    Mix_ResumeMusic(); return Qnil;
}

.rewindnil

Rewind the music to the start.

Returns:

  • (nil)


794
795
796
797
# File 'mixer.c', line 794

static VALUE MusicChannel_s_rewind(VALUE self)
{
    Mix_RewindMusic(); return Qnil;
}

.set_position(position) ⇒ nil

Set the position of the currently playing music.

Parameters:

  • position (Float)

    the position to play from.

Returns:

  • (nil)


806
807
808
809
810
# File 'mixer.c', line 806

static VALUE MusicChannel_s_set_position(VALUE self, VALUE position)
{
    HANDLE_MIX_ERROR(Mix_SetMusicPosition(NUM2DBL(position)));
    return Qnil;
}

.volumeInteger

Get the volume of the music channel.

Returns:

  • (Integer)

See Also:



742
743
744
745
# File 'mixer.c', line 742

static VALUE MusicChannel_s_volume(VALUE self)
{
    return INT2FIX(Mix_VolumeMusic(-1));
}

.volume=(vol) ⇒ vol

Set the volume of the music channel.

Parameters:

Returns:

  • (vol)

See Also:



757
758
759
760
761
# File 'mixer.c', line 757

static VALUE MusicChannel_s_set_volume(VALUE self, VALUE volume)
{
    Mix_VolumeMusic(NUM2INT(volume));
    return volume;
}