/**
* 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
}