/* * call-seq: * stop -> self * * Stop the Sound. Unlike #pause, the sound must be played again from * the beginning, it cannot be resumed from it was stopped. * * Returns:: The receiver (self). * * **NOTE**: Does nothing if the sound is not currently playing or paused. * */ static VALUE rg_sound_stop( VALUE self ) { RG_Sound *sound; Data_Get_Struct(self, RG_Sound, sound); int channel = sound->channel; /* Make sure the sound actually belongs to the channel */ if( _rg_sound_channel_check(sound) ) { Mix_HaltChannel( channel ); } return self; }