/** * call-seq: * isrc(track) * * Returns the International Standard Recording Code (ISRC) for the track. * * Requires libdiscid >= 0.3. If not supported this method will always return +nil+. * * Returns always +nil+ if no ID was yet read. */ static VALUE mb_discid_isrc(VALUE self, VALUE track) { #ifdef HAVE_DISCID_GET_TRACK_ISRC if (rb_iv_get(self, "@read") == Qfalse) return Qnil; else { DiscId *disc; /* Pointer to the disc struct */ int ctrack = NUM2INT(track); /* Track number to process. */ Data_Get_Struct(self, DiscId, disc); return rb_str_new2(discid_get_track_isrc(disc, ctrack)); } #else return Qnil; #endif }