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