// Copyright © 2017 Paddy Xu // // This file is part of QuickLook program. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System; using System.Globalization; using System.Windows; using System.Windows.Data; namespace QuickLook.Plugin.VideoViewer { public sealed class TimeSpanToShortStringConverter : DependencyObject, IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return "00:00"; var v = (TimeSpan) value; var s = string.Empty; if (v.Hours > 0) s += $"{v.Hours:D2}:"; s += $"{v.Minutes:D2}:{v.Seconds:D2}"; return s; } object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } public sealed class VolumeToIconConverter : DependencyObject, IValueConverter { private static readonly string[] Volumes = {"\xE992", "\xE993", "\xE994", "\xE995"}; public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return Volumes[0]; var v = (int) value; if (v == 0) return Volumes[0]; v = Math.Min(v, 100); return Volumes[1 + v / 34]; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }