Esempio n. 1
0
        protected string formatBeforeWriting(byte frameType, TagData tag, IDictionary <byte, string> map)
        {
            string value = "";
            string total = "";

            switch (frameType)
            {
            case TagData.TAG_FIELD_RATING: return(TrackUtils.EncodePopularity(map[frameType], ratingConvention).ToString());

            case TagData.TAG_FIELD_TRACK_NUMBER:
                value = map[TagData.TAG_FIELD_TRACK_NUMBER];
                map.TryGetValue(TagData.TAG_FIELD_TRACK_TOTAL, out total);
                return(TrackUtils.ApplyLeadingZeroes(value, total, tag.TrackDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat));

            case TagData.TAG_FIELD_TRACK_TOTAL:
                value = map[TagData.TAG_FIELD_TRACK_TOTAL];
                total = value;
                return(TrackUtils.ApplyLeadingZeroes(value, total, tag.TrackDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat));

            case TagData.TAG_FIELD_TRACK_NUMBER_TOTAL:
                value = map[TagData.TAG_FIELD_TRACK_NUMBER_TOTAL];
                total = value;
                return(TrackUtils.ApplyLeadingZeroes(value, total, tag.TrackDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat));

            case TagData.TAG_FIELD_DISC_NUMBER:
                value = map[TagData.TAG_FIELD_DISC_NUMBER];
                map.TryGetValue(TagData.TAG_FIELD_DISC_TOTAL, out total);
                return(TrackUtils.ApplyLeadingZeroes(value, total, tag.DiscDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat));

            case TagData.TAG_FIELD_DISC_TOTAL:
                value = map[TagData.TAG_FIELD_DISC_TOTAL];
                total = value;
                return(TrackUtils.ApplyLeadingZeroes(value, total, tag.DiscDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat));

            case TagData.TAG_FIELD_DISC_NUMBER_TOTAL:
                value = map[TagData.TAG_FIELD_DISC_NUMBER_TOTAL];
                total = value;
                return(TrackUtils.ApplyLeadingZeroes(value, total, tag.DiscDigitsForLeadingZeroes, Settings.UseLeadingZeroes, Settings.OverrideExistingLeadingZeroesFormat));

            default: return(map[frameType]);
            }
        }
Esempio n. 2
0
        public void TrackUtils_ApplyLeadingZeroes()
        {
            // Use existing track format
            Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "", 1, false, false));
            Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "10", 1, false, false));
            Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "10", 1, true, false));
            Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 2, true, false));
            Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 2, false, false));
            Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("1/1", "1", 2, false, false));
            Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("01/1", "1", 2, false, false));

            // Override existing track format
            Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "10", 2, false, true));
            Assert.AreEqual("1", TrackUtils.ApplyLeadingZeroes("1", "1", 2, false, true));
            Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 2, true, true));
            Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "10", 2, true, true));
            Assert.AreEqual("01", TrackUtils.ApplyLeadingZeroes("1", "1", 0, true, true));
            Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("1/1", "1", 0, true, true));
            Assert.AreEqual("01/01", TrackUtils.ApplyLeadingZeroes("1/01", "1", 0, true, true));
            Assert.AreEqual("001", TrackUtils.ApplyLeadingZeroes("1", "100", 0, true, true));
        }