/*
 *  call-seq:
 *    clone( other )  ->  music
 *    dup( other )  ->  music
 *
 *  Create a copy of the given Music instance. More efficient
 *  than using #load to load the music file again.
 *
 *  other::       An existing Music instance. (Music, required)
 *
 *  Returns::     The new Music instance. (Music)
 *
 *  **NOTE**: #clone and #dup do slightly different things; #clone will copy
 *  the 'frozen' state of the object, while #dup will create a fresh, un-frozen
 *  object.
 *
 */
static VALUE rg_music_initialize_copy( VALUE self, VALUE other )
{
  RG_Music *musicA, *musicB;
  Data_Get_Struct(self,  RG_Music, musicA);
  Data_Get_Struct(other, RG_Music, musicB);

  _rg_music_copy( musicA, musicB );

  return self;
}