diff --git a/DOCS/interface-changes/osc-icon-style.txt b/DOCS/interface-changes/osc-icon-style.txt new file mode 100644 index 0000000000000..052ea96e7fa2e --- /dev/null +++ b/DOCS/interface-changes/osc-icon-style.txt @@ -0,0 +1 @@ +add `osc-icon_style` option diff --git a/DOCS/man/osc.rst b/DOCS/man/osc.rst index 73522254b2e72..9ff41ab09cd36 100644 --- a/DOCS/man/osc.rst +++ b/DOCS/man/osc.rst @@ -492,6 +492,17 @@ Configurable Options Use a Unicode minus sign instead of an ASCII hyphen when displaying the remaining playback time. +``icon_style`` + Default: classic + + Selects the icon set used for OSC buttons. Both sets are bundled in the + mpv-osd-symbols font. + + ``classic`` + The original mpv icon set. + ``fluent`` + Icons based on Microsoft's Fluent UI System Icons. + ``background_color`` Default: #000000 diff --git a/TOOLS/gen-fluent-glyphs.py b/TOOLS/gen-fluent-glyphs.py new file mode 100755 index 0000000000000..2e6e7234977ed --- /dev/null +++ b/TOOLS/gen-fluent-glyphs.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +"""Import Fluent UI System Icons into mpv-osd-symbols font. + +Downloads SVG icons from microsoft/fluentui-system-icons and uses FontForge +to import them into the mpv-osd-symbols font. + +Usage: + ./TOOLS/gen-fluent-glyphs.py + ./TOOLS/gen-osd-font.sh + +Requirements: fontforge +""" + +import os +import subprocess +import sys +import tempfile +import urllib.parse +import urllib.request + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +SFDIR = os.path.join(SCRIPT_DIR, "mpv-osd-symbols.sfdir") +REPO_SHA = "9a4a2db2df7f0067b4ef43c5ae5bfcae3759a5a0" # v1.1.320 +REPO_BASE = ("https://raw.githubusercontent.com/" + f"microsoft/fluentui-system-icons/{REPO_SHA}/assets") +GLYPH_WIDTH = 880 + +# Mapping: codepoint -> (fluent_icon_name, size, style, transform) +# +# See https://github.com/microsoft/fluentui-system-icons/tree/main/assets +# for available icons. + +ICONS = { + 0xE200: ("Line Horizontal 3", 20, "filled", None), # menu + 0xE201: ("Play", 24, "filled", "flip_x"), # prev / play_backward + 0xE202: ("Play", 24, "filled", None), # play / next + 0xE203: ("Pause", 24, "filled", None), # pause + 0xE204: ("Clock", 24, "regular", None), # clock (buffering) + 0xE205: ("Rewind", 24, "filled", None), # skip_backward + 0xE206: ("Fast Forward", 24, "filled", None), # skip_forward + 0xE207: ("Previous", 24, "filled", None), # chapter_prev + 0xE208: ("Next", 24, "filled", None), # chapter_next + 0xE209: ("Chat", 24, "regular", None), # audio + 0xE20A: ("Closed Caption", 24, "regular", None), # subtitle + 0xE20B: ("Speaker Mute", 24, "filled", None), # mute + 0xE20C: ("Speaker 0", 24, "filled", None), # volume[1] + 0xE20D: ("Speaker 1", 24, "filled", None), # volume[2] + 0xE20E: ("Speaker 2", 24, "filled", None), # volume[3] + 0xE20F: ("Speaker 2", 24, "filled", "add_alert"),# volume[4] (>100%) + 0xE210: ("Full Screen Maximize", 24, "filled", None), # fullscreen + 0xE211: ("Full Screen Minimize", 24, "filled", None), # exit_fullscreen + 0xE212: ("Dismiss", 24, "filled", None), # close + 0xE213: ("Subtract", 24, "filled", None), # minimize + 0xE214: ("Maximize", 24, "filled", None), # maximize + 0xE215: ("Square Multiple", 24, "filled", None), # unmaximize +} + + +def icon_url(name, size, style): + snake = name.lower().replace(" ", "_") + filename = f"ic_fluent_{snake}_{size}_{style}.svg" + dir_encoded = urllib.parse.quote(name) + return f"{REPO_BASE}/{dir_encoded}/SVG/{filename}" + + +def download_icons(dest_dir): + paths = {} + seen: dict[str, str] = {} + + for cp, (name, size, style, _transform) in ICONS.items(): + url = icon_url(name, size, style) + svg_path = os.path.join(dest_dir, f"uni{cp:04X}.svg") + + if url in seen: + # Reuse previously downloaded file. + import shutil + shutil.copy2(seen[url], svg_path) + paths[cp] = svg_path + print(f" U+{cp:04X} {name} (cached)") + continue + + print(f" U+{cp:04X} {name} <- {url}") + try: + urllib.request.urlretrieve(url, svg_path) + seen[url] = svg_path + paths[cp] = svg_path + except urllib.error.HTTPError as e: + print(f" ERROR: {e.code} {e.reason} - check icon name/size") + + return paths + + +def import_into_font(svg_paths): + transforms = {} + for cp, (_name, _size, _style, transform) in ICONS.items(): + if transform: + transforms[cp] = transform + + ff_script = f"""\ +import fontforge +import psMat +import os + +font = fontforge.open({SFDIR!r}) +WIDTH = {GLYPH_WIDTH} + +svg_paths = {svg_paths!r} +transforms = {transforms!r} + +for cp, svg_path in sorted(svg_paths.items()): + if not os.path.exists(svg_path): + continue + + glyph = font.createChar(cp) + glyph.clear() + glyph.importOutlines(svg_path) + + # Scale to fit ascent (800 units) with padding + bb = glyph.boundingBox() # (xmin, ymin, xmax, ymax) + bw = bb[2] - bb[0] + bh = bb[3] - bb[1] + if bw == 0 or bh == 0: + print(f" SKIP U+{{cp:04X}} (empty)") + continue + + target = 700 # leave some padding within 800-unit ascent + scale = min(target / bh, target / bw) + glyph.transform(psMat.scale(scale)) + + # Apply transform (e.g. horizontal flip for prev) + if cp in transforms and transforms[cp] == "flip_x": + glyph.transform(psMat.scale(-1, 1)) + + # Center in glyph + bb = glyph.boundingBox() + x_off = (WIDTH - (bb[2] + bb[0])) / 2 + y_off = (800 - (bb[3] + bb[1])) / 2 + glyph.transform(psMat.translate(x_off, y_off)) + + # Add alert indicator + if cp in transforms and transforms[cp] == "add_alert": + bb = glyph.boundingBox() + cx = (bb[0] + bb[2]) / 2 + cy = (bb[1] + bb[3]) / 2 + # Shrink icon to make room + glyph.transform(psMat.compose( + psMat.translate(-cx, -cy), + psMat.compose(psMat.scale(0.75), + psMat.translate(cx - 80, cy)))) + # Draw exclamation mark (centered vertically at y=400) + pen = glyph.glyphPen(replace=False) + pen.moveTo((720, 630)) + pen.lineTo((760, 630)) + pen.lineTo((760, 300)) + pen.lineTo((720, 300)) + pen.closePath() + pen.moveTo((720, 240)) + pen.lineTo((760, 240)) + pen.lineTo((760, 170)) + pen.lineTo((720, 170)) + pen.closePath() + pen = None + + glyph.width = WIDTH + print(f" U+{{cp:04X}} imported") + +font.save({SFDIR!r}) +print("Saved to", {SFDIR!r}) +""" + + with tempfile.NamedTemporaryFile(mode="w", suffix=".py", delete=False) as f: + f.write(ff_script) + script_path = f.name + + try: + subprocess.run(["fontforge", "-lang=py", "-script", script_path],check=True) + finally: + os.unlink(script_path) + + +def main(): + print("Downloading Fluent UI System Icons...") + with tempfile.TemporaryDirectory() as tmpdir: + svg_paths = download_icons(tmpdir) + if not svg_paths: + print("No icons downloaded.") + sys.exit(1) + + print(f"\nImporting {len(svg_paths)} icons into {SFDIR}...") + import_into_font(svg_paths) + + print("\nDone. Run './TOOLS/gen-osd-font.sh' to rebuild the mpv font.") + + +if __name__ == "__main__": + main() diff --git a/TOOLS/mpv-osd-symbols.sfdir/font.props b/TOOLS/mpv-osd-symbols.sfdir/font.props index ae2cec146e990..696bad0e4e372 100644 --- a/TOOLS/mpv-osd-symbols.sfdir/font.props +++ b/TOOLS/mpv-osd-symbols.sfdir/font.props @@ -22,7 +22,7 @@ OS2Version: 3 OS2_WeightWidthSlopeOnly: 0 OS2_UseTypoMetrics: 0 CreationTime: 1408646554 -ModificationTime: 1735420479 +ModificationTime: 1773309742 PfmFamily: 81 TTFWeight: 400 TTFWidth: 5 diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE102.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE102.glyph index d3ba651acfec7..67df1ca3c74b4 100644 --- a/TOOLS/mpv-osd-symbols.sfdir/uniE102.glyph +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE102.glyph @@ -10,7 +10,7 @@ SplineSet 0 640 l 1 0 800 l 1 880 800 l 1 - 880 640 l 1 + 880 640 l 1 880 320 m 1 0 320 l 1 0 480 l 1 diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE200.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE200.glyph new file mode 100644 index 0000000000000..04f5c986807d8 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE200.glyph @@ -0,0 +1,31 @@ +StartChar: uniE200 +Encoding: 57856 57856 36 +Width: 880 +VWidth: 1001 +Flags: HW +LayerCount: 2 +Fore +SplineSet +90 618.75 m 0 + 90 636.872070312 104.690429688 651.5625 122.8125 651.5625 c 2 + 757.1875 651.5625 l 2 + 775.30859375 651.5625 790 636.872070312 790 618.75 c 0 + 790 600.627929688 775.30859375 585.9375 757.1875 585.9375 c 2 + 122.8125 585.9375 l 2 + 104.690429688 585.9375 90 600.627929688 90 618.75 c 0 +90 400 m 0 + 90 418.122070312 104.690429688 432.8125 122.8125 432.8125 c 2 + 757.1875 432.8125 l 2 + 775.30859375 432.8125 790 418.122070312 790 400 c 0 + 790 381.87890625 775.30859375 367.1875 757.1875 367.1875 c 2 + 122.8125 367.1875 l 2 + 104.690429688 367.1875 90 381.87890625 90 400 c 0 +122.8125 214.0625 m 2 + 757.1875 214.0625 l 2 + 775.30859375 214.0625 790 199.37109375 790 181.25 c 0 + 790 163.12890625 775.30859375 148.4375 757.1875 148.4375 c 2 + 122.8125 148.4375 l 2 + 104.690429688 148.4375 90 163.12890625 90 181.25 c 0 + 90 199.37109375 104.690429688 214.0625 122.8125 214.0625 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE201.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE201.glyph new file mode 100644 index 0000000000000..11a4a25c2409f --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE201.glyph @@ -0,0 +1,17 @@ +StartChar: uniE201 +Encoding: 57857 57857 37 +Width: 880 +VWidth: 1054 +Flags: HW +LayerCount: 2 +Fore +SplineSet +768.619140625 662.17578125 m 2 + 768.619140625 728.706054688 697.439453125 771.008789062 639.000976562 739.2109375 c 2 + 157.1640625 477.03515625 l 2 + 96.119140625 443.8203125 96.119140625 356.181640625 157.1640625 322.963867188 c 2 + 639.000976562 60.7880859375 l 2 + 697.439453125 28.9921875 768.619140625 71.296875 768.619140625 137.82421875 c 2 + 768.619140625 662.17578125 l 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE202.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE202.glyph new file mode 100644 index 0000000000000..3fe1ab220beff --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE202.glyph @@ -0,0 +1,17 @@ +StartChar: uniE202 +Encoding: 57858 57858 38 +Width: 880 +VWidth: 1054 +Flags: HW +LayerCount: 2 +Fore +SplineSet +111.380859375 662.17578125 m 2 + 111.380859375 728.706054688 182.560546875 771.008789062 240.999023438 739.2109375 c 2 + 722.8359375 477.03515625 l 2 + 783.880859375 443.8203125 783.880859375 356.181640625 722.8359375 322.963867188 c 2 + 240.999023438 60.7880859375 l 2 + 182.560546875 28.9921875 111.380859375 71.296875 111.380859375 137.82421875 c 2 + 111.380859375 662.17578125 l 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE203.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE203.glyph new file mode 100644 index 0000000000000..5d25b9c45aafd --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE203.glyph @@ -0,0 +1,28 @@ +StartChar: uniE203 +Encoding: 57859 57859 39 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +196.9453125 750 m 2 + 333.055664062 750 l 2 + 370.642578125 750 401.111328125 719.53125 401.111328125 681.944335938 c 2 + 401.111328125 118.055664062 l 2 + 401.111328125 80.46875 370.642578125 50 333.055664062 50 c 2 + 196.9453125 50 l 2 + 159.359375 50 128.888671875 80.46875 128.888671875 118.055664062 c 2 + 128.888671875 681.944335938 l 2 + 128.888671875 719.53125 159.359375 750 196.9453125 750 c 2 +546.9453125 750 m 2 + 683.055664062 750 l 2 + 720.642578125 750 751.111328125 719.53125 751.111328125 681.944335938 c 2 + 751.111328125 118.055664062 l 2 + 751.111328125 80.46875 720.642578125 50 683.055664062 50 c 2 + 546.9453125 50 l 2 + 509.359375 50 478.888671875 80.46875 478.888671875 118.055664062 c 2 + 478.888671875 681.944335938 l 2 + 478.888671875 719.53125 509.359375 750 546.9453125 750 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE204.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE204.glyph new file mode 100644 index 0000000000000..690cde61efc46 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE204.glyph @@ -0,0 +1,33 @@ +StartChar: uniE204 +Encoding: 57860 57860 40 +Width: 880 +VWidth: 987 +Flags: HW +LayerCount: 2 +Fore +SplineSet +142.5 400 m 0 + 142.5 235.696289062 275.6953125 102.5 440 102.5 c 0 + 604.302734375 102.5 737.5 235.696289062 737.5 400 c 0 + 737.5 564.303710938 604.302734375 697.5 440 697.5 c 0 + 275.6953125 697.5 142.5 564.303710938 142.5 400 c 0 +440 750 m 0 + 633.296875 750 790 593.299804688 790 400 c 0 + 790 206.702148438 633.296875 50 440 50 c 0 + 246.700195312 50 90 206.702148438 90 400 c 0 + 90 593.299804688 246.700195312 750 440 750 c 0 +439.758789062 587.309570312 m 2 + 440 583.75 l 1 + 440 400 l 1 + 553.75 400 l 2 + 568.240234375 400 580 388.240234375 580 373.75 c 0 + 580 360.467773438 570.119140625 349.477539062 557.309570312 347.741210938 c 2 + 553.75 347.5 l 1 + 413.75 347.5 l 2 + 400.466796875 347.5 389.477539062 357.380859375 387.741210938 370.190429688 c 2 + 387.5 373.75 l 1 + 387.5 583.75 l 2 + 387.5 598.239257812 399.259765625 610 413.75 610 c 0 + 427.032226562 610 438.021484375 600.118164062 439.758789062 587.309570312 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE205.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE205.glyph new file mode 100644 index 0000000000000..60567fe3b99df --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE205.glyph @@ -0,0 +1,28 @@ +StartChar: uniE205 +Encoding: 57861 57861 41 +Width: 880 +VWidth: 1018 +Flags: HW +LayerCount: 2 +Fore +SplineSet +385.713867188 681.48046875 m 2 + 421.602539062 712.025390625 476.805664062 686.518554688 476.805664062 639.389648438 c 2 + 476.805664062 492.393554688 l 1 + 698.908203125 681.41796875 l 2 + 734.795898438 711.962890625 790 686.45703125 790 639.328125 c 2 + 790 160.588867188 l 2 + 790 128.21875 763.95703125 106.048828125 736.01953125 105.234375 c 2 + 732.8359375 105.234375 l 2 + 721.111328125 105.577148438 709.213867188 109.7265625 698.908203125 118.49609375 c 2 + 476.805664062 307.513671875 l 1 + 476.805664062 160.647460938 l 2 + 476.805664062 113.521484375 421.60546875 88.0166015625 385.713867188 118.557617188 c 2 + 112.690429688 350.908203125 l 2 + 82.4365234375 376.655273438 82.4365234375 423.369140625 112.689453125 449.118164062 c 2 + 385.713867188 681.48046875 l 2 +112.689453125 449.118164062 m 1 + 130.600585938 428.075195312 l 1 + 112.689453125 449.118164062 l 1 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE206.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE206.glyph new file mode 100644 index 0000000000000..8f3ff15e464bf --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE206.glyph @@ -0,0 +1,25 @@ +StartChar: uniE206 +Encoding: 57862 57862 42 +Width: 880 +VWidth: 1018 +Flags: HW +LayerCount: 2 +Fore +SplineSet +494.287109375 681.463867188 m 2 + 767.3125 449.100585938 l 2 + 797.5625 423.356445312 797.5625 376.638671875 767.30859375 350.889648438 c 2 + 494.283203125 118.5390625 l 2 + 458.395507812 87.998046875 403.1953125 113.502929688 403.1953125 160.633789062 c 2 + 403.1953125 307.525390625 l 1 + 181.08984375 118.509765625 l 2 + 170.784179688 109.741210938 158.88671875 105.591796875 147.161132812 105.25 c 2 + 143.978515625 105.25 l 2 + 116.040039062 106.063476562 90 128.23046875 90 160.599609375 c 2 + 90 639.34375 l 2 + 90 686.471679688 145.200195312 711.978515625 181.090820312 681.43359375 c 2 + 403.1953125 492.408203125 l 1 + 403.1953125 639.375 l 2 + 403.1953125 686.502929688 458.395507812 712.009765625 494.287109375 681.463867188 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE207.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE207.glyph new file mode 100644 index 0000000000000..64f92202549d1 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE207.glyph @@ -0,0 +1,24 @@ +StartChar: uniE207 +Encoding: 57863 57863 43 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +90.021484375 720.834960938 m 2 + 90.021484375 736.942382812 103.080078125 750 119.1875 750 c 0 + 135.294921875 750 148.3515625 736.942382812 148.3515625 720.834960938 c 2 + 148.3515625 79.205078125 l 2 + 148.3515625 63.09765625 135.294921875 50.0400390625 119.1875 50.0400390625 c 0 + 103.080078125 50.0400390625 90.021484375 63.09765625 90.021484375 79.205078125 c 2 + 90.021484375 720.834960938 l 2 +789.978515625 681.83203125 m 2 + 789.978515625 118.169921875 l 2 + 789.978515625 63.2109375 728.1953125 30.919921875 683.072265625 62.30078125 c 2 + 274.822265625 346.236328125 l 2 + 235.7265625 373.42578125 235.9296875 431.328125 275.212890625 458.2421875 c 2 + 683.462890625 737.969726562 l 2 + 728.623046875 768.9140625 789.978515625 736.577148438 789.978515625 681.83203125 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE208.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE208.glyph new file mode 100644 index 0000000000000..bb67db2b5c6ae --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE208.glyph @@ -0,0 +1,24 @@ +StartChar: uniE208 +Encoding: 57864 57864 44 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +90.021484375 681.83203125 m 2 + 90.021484375 736.577148438 151.376953125 768.9140625 196.5390625 737.969726562 c 2 + 604.7890625 458.2421875 l 2 + 644.0703125 431.328125 644.2734375 373.42578125 605.1796875 346.236328125 c 2 + 196.927734375 62.30078125 l 2 + 151.80859375 30.919921875 90.021484375 63.2109375 90.021484375 118.169921875 c 2 + 90.021484375 681.83203125 l 2 +789.978515625 720.834960938 m 2 + 789.978515625 79.205078125 l 2 + 789.978515625 63.09765625 776.919921875 50.0400390625 760.8125 50.0400390625 c 0 + 744.705078125 50.0400390625 731.6484375 63.09765625 731.6484375 79.205078125 c 2 + 731.6484375 720.834960938 l 2 + 731.6484375 736.942382812 744.705078125 750 760.8125 750 c 0 + 776.919921875 750 789.978515625 736.942382812 789.978515625 720.834960938 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE209.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE209.glyph new file mode 100644 index 0000000000000..6af1017f76151 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE209.glyph @@ -0,0 +1,52 @@ +StartChar: uniE209 +Encoding: 57865 57865 45 +Width: 880 +VWidth: 987 +Flags: HW +LayerCount: 2 +Fore +SplineSet +440 750 m 0 + 633.28125 750 789.970703125 593.313476562 789.970703125 400.029296875 c 0 + 789.970703125 206.748046875 633.28125 50.05859375 440 50.05859375 c 0 + 383.364257812 50.05859375 328.6328125 63.546875 279.462890625 88.9755859375 c 2 + 145.571289062 51.6240234375 l 2 + 122.30078125 45.1240234375 98.1689453125 58.720703125 91.6708984375 81.990234375 c 0 + 89.5205078125 89.689453125 89.521484375 97.833984375 91.6728515625 105.526367188 c 2 + 129.037109375 239.31640625 l 2 + 103.55078125 288.529296875 90.029296875 343.323242188 90.029296875 400.029296875 c 0 + 90.029296875 593.313476562 246.715820312 750 440 750 c 0 +440 697.504882812 m 0 + 275.708984375 697.504882812 142.524414062 564.3203125 142.524414062 400.029296875 c 0 + 142.524414062 348.59765625 155.5703125 299.119140625 180.078125 255.229492188 c 2 + 185.350585938 245.790039062 l 1 + 146.408203125 106.35546875 l 1 + 285.926757812 145.279296875 l 1 + 295.360351562 140.018554688 l 2 + 339.2109375 115.5703125 388.630859375 102.5546875 440 102.5546875 c 0 + 604.2890625 102.5546875 737.474609375 235.739257812 737.474609375 400.029296875 c 0 + 737.474609375 564.3203125 604.2890625 697.504882812 440 697.504882812 c 0 +326.258789062 365.032226562 m 1 + 483.686523438 365.032226562 l 2 + 498.181640625 365.032226562 509.934570312 353.280273438 509.934570312 338.784179688 c 0 + 509.934570312 325.49609375 500.057617188 314.514648438 487.24609375 312.774414062 c 2 + 483.686523438 312.536132812 l 1 + 326.258789062 312.536132812 l 2 + 311.762695312 312.536132812 300.010742188 324.2890625 300.010742188 338.784179688 c 0 + 300.010742188 352.073242188 309.885742188 363.055664062 322.697265625 364.793945312 c 2 + 326.258789062 365.032226562 l 1 + 483.686523438 365.032226562 l 1 + 326.258789062 365.032226562 l 1 +326.258789062 487.522460938 m 1 + 553.897460938 487.522460938 l 2 + 568.393554688 487.522460938 580.145507812 475.770507812 580.145507812 461.274414062 c 0 + 580.145507812 447.985351562 570.268554688 437.00390625 557.459960938 435.264648438 c 2 + 553.897460938 435.026367188 l 1 + 326.258789062 435.026367188 l 2 + 311.762695312 435.026367188 300.010742188 446.778320312 300.010742188 461.274414062 c 0 + 300.010742188 474.5625 309.885742188 485.544921875 322.697265625 487.282226562 c 2 + 326.258789062 487.522460938 l 1 + 553.897460938 487.522460938 l 1 + 326.258789062 487.522460938 l 1 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE20A.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE20A.glyph new file mode 100644 index 0000000000000..fc0b9bda614af --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE20A.glyph @@ -0,0 +1,48 @@ +StartChar: uniE20A +Encoding: 57866 57866 46 +Width: 880 +VWidth: 987 +Flags: HW +LayerCount: 2 +Fore +SplineSet +676.249023438 680.080078125 m 2 + 739.0703125 680.080078125 790 629.153320312 790 566.331054688 c 2 + 790 233.669921875 l 2 + 790 170.848632812 739.0703125 119.919921875 676.249023438 119.919921875 c 2 + 203.75 119.919921875 l 2 + 140.926757812 119.919921875 90 170.848632812 90 233.669921875 c 2 + 90 566.331054688 l 2 + 90 626.986328125 137.475585938 676.5546875 197.294921875 679.900390625 c 2 + 203.75 680.080078125 l 1 + 676.249023438 680.080078125 l 2 +676.249023438 627.580078125 m 2 + 203.75 627.580078125 l 1 + 198.7265625 627.377929688 l 2 + 167.248046875 624.822265625 142.5 598.466796875 142.5 566.331054688 c 2 + 142.5 233.669921875 l 2 + 142.5 199.842773438 169.922851562 172.419921875 203.75 172.419921875 c 2 + 676.249023438 172.419921875 l 2 + 710.077148438 172.419921875 737.5 199.842773438 737.5 233.669921875 c 2 + 737.5 566.331054688 l 2 + 737.5 600.158203125 710.077148438 627.580078125 676.249023438 627.580078125 c 2 +212.5 400.081054688 m 0 + 212.5 510.17578125 307.462890625 567.216796875 391.755859375 519.131835938 c 0 + 404.348632812 511.948242188 408.734375 495.916992188 401.552734375 483.32421875 c 0 + 394.366210938 470.731445312 378.336914062 466.346679688 365.743164062 473.530273438 c 0 + 316.825195312 501.434570312 265 470.305664062 265 400.081054688 c 0 + 265 329.919921875 316.944335938 298.713867188 365.772460938 326.486328125 c 0 + 378.372070312 333.654296875 394.3984375 329.248046875 401.56640625 316.647460938 c 0 + 408.734375 304.044921875 404.327148438 288.017578125 391.727539062 280.850585938 c 0 + 307.538085938 232.965820312 212.5 290.065429688 212.5 400.081054688 c 0 +475 400.081054688 m 0 + 475 510.17578125 569.961914062 567.216796875 654.254882812 519.131835938 c 0 + 666.848632812 511.948242188 671.234375 495.916992188 664.052734375 483.32421875 c 0 + 656.866210938 470.731445312 640.836914062 466.346679688 628.243164062 473.530273438 c 0 + 579.32421875 501.434570312 527.5 470.305664062 527.5 400.081054688 c 0 + 527.5 329.919921875 579.442382812 298.713867188 628.271484375 326.486328125 c 0 + 640.872070312 333.654296875 656.8984375 329.248046875 664.06640625 316.647460938 c 0 + 671.234375 304.044921875 666.827148438 288.017578125 654.227539062 280.850585938 c 0 + 570.0390625 232.965820312 475 290.065429688 475 400.081054688 c 0 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE20B.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE20B.glyph new file mode 100644 index 0000000000000..8cdc56381bcff --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE20B.glyph @@ -0,0 +1,40 @@ +StartChar: uniE20B +Encoding: 57867 57867 47 +Width: 880 +VWidth: 987 +Flags: HW +LayerCount: 2 +Fore +SplineSet +545 671.173828125 m 2 + 545 128.827148438 l 2 + 545 91.0751953125 500.392578125 71.044921875 472.1796875 96.1337890625 c 2 + 314.977539062 235.913085938 l 2 + 310.172851562 240.186523438 303.96484375 242.545898438 297.53515625 242.545898438 c 2 + 168.75 242.545898438 l 2 + 125.2578125 242.545898438 90 277.803710938 90 321.295898438 c 2 + 90 478.723632812 l 2 + 90 522.215820312 125.2578125 557.473632812 168.75 557.473632812 c 2 + 297.536132812 557.473632812 l 2 + 303.966796875 557.473632812 310.172851562 559.833007812 314.977539062 564.10546875 c 2 + 472.182617188 703.870117188 l 2 + 500.392578125 728.953125 545 708.92578125 545 671.173828125 c 2 +587.690429688 497.235351562 m 0 + 597.94140625 507.486328125 614.559570312 507.486328125 624.811523438 497.235351562 c 2 + 685.000976562 437.047851562 l 1 + 745.190429688 497.235351562 l 2 + 755.44140625 507.486328125 772.059570312 507.486328125 782.311523438 497.235351562 c 0 + 792.5625 486.984375 792.5625 470.36328125 782.311523438 460.11328125 c 2 + 722.125 399.923828125 l 1 + 782.311523438 339.733398438 l 2 + 792.5625 329.482421875 792.5625 312.864257812 782.311523438 302.61328125 c 0 + 772.059570312 292.360351562 755.44140625 292.360351562 745.190429688 302.61328125 c 2 + 685.000976562 362.801757812 l 1 + 624.811523438 302.61328125 l 2 + 614.559570312 292.360351562 597.94140625 292.360351562 587.690429688 302.61328125 c 0 + 577.438476562 312.864257812 577.438476562 329.482421875 587.690429688 339.733398438 c 2 + 647.875976562 399.923828125 l 1 + 587.690429688 460.11328125 l 2 + 577.438476562 470.36328125 577.438476562 486.984375 587.690429688 497.235351562 c 0 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE20C.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE20C.glyph new file mode 100644 index 0000000000000..b7c980ed4ee11 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE20C.glyph @@ -0,0 +1,23 @@ +StartChar: uniE20C +Encoding: 57868 57868 48 +Width: 880 +VWidth: 1052 +Flags: HW +LayerCount: 2 +Fore +SplineSet +681.248046875 732.793945312 m 0 + 688.6796875 724.015625 692.754882812 712.889648438 692.754882812 701.392578125 c 2 + 692.754882812 98.6064453125 l 2 + 692.754882812 71.759765625 670.994140625 50 644.1484375 50 c 0 + 632.645507812 50 621.516601562 54.0791015625 612.740234375 61.509765625 c 2 + 419.58984375 225.053710938 l 1 + 274.737304688 225.053710938 l 2 + 226.416992188 225.053710938 187.245117188 264.2265625 187.245117188 312.545898438 c 2 + 187.245117188 487.530273438 l 2 + 187.245117188 535.849609375 226.416992188 575.021484375 274.737304688 575.021484375 c 2 + 419.59375 575.021484375 l 1 + 612.748046875 738.494140625 l 2 + 633.236328125 755.836914062 663.909179688 753.284179688 681.248046875 732.793945312 c 0 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE20D.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE20D.glyph new file mode 100644 index 0000000000000..2bef83449abbe --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE20D.glyph @@ -0,0 +1,32 @@ +StartChar: uniE20D +Encoding: 57869 57869 49 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +603.560546875 732.79296875 m 0 + 610.9921875 724.016601562 615.06640625 712.890625 615.06640625 701.391601562 c 2 + 615.06640625 98.6064453125 l 2 + 615.06640625 71.7646484375 593.306640625 50 566.4609375 50 c 0 + 554.958007812 50 543.829101562 54.0791015625 535.052734375 61.513671875 c 2 + 341.903320312 225.052734375 l 1 + 197.05078125 225.052734375 l 2 + 148.73046875 225.052734375 109.559570312 264.2265625 109.559570312 312.544921875 c 2 + 109.559570312 487.530273438 l 2 + 109.559570312 535.850585938 148.73046875 575.021484375 197.05078125 575.021484375 c 2 + 341.907226562 575.021484375 l 1 + 535.060546875 738.494140625 l 2 + 555.548828125 755.836914062 586.221679688 753.284179688 603.560546875 732.79296875 c 0 +696.861328125 530.678710938 m 0 + 710.611328125 539.0703125 728.560546875 534.727539062 736.948242188 520.978515625 c 0 + 759.264648438 484.420898438 770.440429688 443.514648438 770.440429688 398.850585938 c 0 + 770.440429688 354.190429688 759.264648438 313.280273438 736.948242188 276.724609375 c 0 + 728.560546875 262.974609375 710.611328125 258.630859375 696.861328125 267.021484375 c 0 + 683.116210938 275.4140625 678.772460938 293.36328125 687.163085938 307.108398438 c 0 + 703.810546875 334.38671875 712.112304688 364.768554688 712.112304688 398.850585938 c 0 + 712.112304688 432.93359375 703.810546875 463.314453125 687.163085938 490.591796875 c 0 + 678.772460938 504.33984375 683.116210938 522.288085938 696.861328125 530.678710938 c 0 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE20E.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE20E.glyph new file mode 100644 index 0000000000000..7dab0a1c33fcb --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE20E.glyph @@ -0,0 +1,41 @@ +StartChar: uniE20E +Encoding: 57870 57870 50 +Width: 880 +VWidth: 986 +Flags: HW +LayerCount: 2 +Fore +SplineSet +545 671.172851562 m 2 + 545 128.827148438 l 2 + 545 91.0751953125 500.391601562 71.044921875 472.178710938 96.1337890625 c 2 + 314.977539062 235.913085938 l 2 + 310.171875 240.186523438 303.96484375 242.544921875 297.534179688 242.544921875 c 2 + 168.75 242.544921875 l 2 + 125.2578125 242.544921875 90 277.803710938 90 321.294921875 c 2 + 90 478.72265625 l 2 + 90 522.21484375 125.2578125 557.47265625 168.75 557.47265625 c 2 + 297.536132812 557.47265625 l 2 + 303.966796875 557.47265625 310.171875 559.83203125 314.977539062 564.10546875 c 2 + 472.182617188 703.869140625 l 2 + 500.391601562 728.952148438 545 708.924804688 545 671.172851562 c 2 +684.705078125 613.516601562 m 0 + 696.353515625 622.145507812 712.79296875 619.696289062 721.423828125 608.045898438 c 0 + 764.509765625 549.874023438 790 477.8359375 790 399.922851562 c 0 + 790 322.008789062 764.509765625 249.97265625 721.423828125 191.798828125 c 0 + 712.79296875 180.147460938 696.353515625 177.700195312 684.705078125 186.328125 c 0 + 673.0546875 194.956054688 670.607421875 211.395507812 679.234375 223.046875 c 0 + 715.8515625 272.484375 737.5 333.640625 737.5 399.922851562 c 0 + 737.5 466.206054688 715.8515625 527.359375 679.234375 576.798828125 c 0 + 670.607421875 588.448242188 673.0546875 604.887695312 684.705078125 613.516601562 c 0 +620.004882812 526.997070312 m 0 + 632.751953125 533.8984375 648.68359375 529.158203125 655.5859375 516.409179688 c 0 + 674.352539062 481.737304688 685 442.034179688 685 399.922851562 c 0 + 685 357.810546875 674.352539062 318.110351562 655.5859375 283.435546875 c 0 + 648.68359375 270.688476562 632.751953125 265.946289062 620.004882812 272.848632812 c 0 + 607.25390625 279.750976562 602.51171875 295.682617188 609.4140625 308.4296875 c 0 + 624.130859375 335.6171875 632.5 366.752929688 632.5 399.922851562 c 0 + 632.5 433.092773438 624.130859375 464.228515625 609.4140625 491.416015625 c 0 + 602.51171875 504.165039062 607.25390625 520.094726562 620.004882812 526.997070312 c 0 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE20F.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE20F.glyph new file mode 100644 index 0000000000000..7c42a137a31f5 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE20F.glyph @@ -0,0 +1,51 @@ +StartChar: uniE20F +Encoding: 57871 57871 51 +Width: 880 +VWidth: 839 +Flags: HW +LayerCount: 2 +Fore +SplineSet +720 240 m 0 + 760 240 l 0 + 760 170 l 0 + 720 170 l 0 + 720 240 l 0 +720 630 m 0 + 760 630 l 0 + 760 300 l 0 + 720 300 l 0 + 720 630 l 0 +438.75 603.379882812 m 2 + 438.75 196.620117188 l 2 + 438.75 168.306640625 405.293945312 153.283203125 384.133789062 172.100585938 c 2 + 266.233398438 276.934570312 l 2 + 262.62890625 280.139648438 257.973632812 281.908203125 253.150390625 281.908203125 c 2 + 156.5625 281.908203125 l 2 + 123.943359375 281.908203125 97.5 308.352539062 97.5 340.970703125 c 2 + 97.5 459.041992188 l 2 + 97.5 491.661132812 123.943359375 518.104492188 156.5625 518.104492188 c 2 + 253.15234375 518.104492188 l 2 + 257.974609375 518.104492188 262.62890625 519.874023438 266.233398438 523.079101562 c 2 + 384.13671875 627.901367188 l 2 + 405.293945312 646.713867188 438.75 631.693359375 438.75 603.379882812 c 2 +543.529296875 560.137695312 m 0 + 552.265625 566.609375 564.594726562 564.772460938 571.068359375 556.034179688 c 0 + 603.3828125 512.405273438 622.5 458.376953125 622.5 399.942382812 c 0 + 622.5 341.506835938 603.3828125 287.479492188 571.068359375 243.848632812 c 0 + 564.594726562 235.110351562 552.265625 233.275390625 543.529296875 239.74609375 c 0 + 534.791015625 246.216796875 532.955078125 258.546875 539.42578125 267.28515625 c 0 + 566.888671875 304.36328125 583.125 350.23046875 583.125 399.942382812 c 0 + 583.125 449.654296875 566.888671875 495.51953125 539.42578125 532.598632812 c 0 + 532.955078125 541.3359375 534.791015625 553.666015625 543.529296875 560.137695312 c 0 +495.00390625 495.248046875 m 0 + 504.564453125 500.423828125 516.512695312 496.868164062 521.689453125 487.306640625 c 0 + 535.764648438 461.302734375 543.75 431.525390625 543.75 399.942382812 c 0 + 543.75 368.357421875 535.764648438 338.583007812 521.689453125 312.576171875 c 0 + 516.512695312 303.016601562 504.564453125 299.459960938 495.00390625 304.63671875 c 0 + 485.440429688 309.813476562 481.883789062 321.76171875 487.060546875 331.322265625 c 0 + 498.09765625 351.712890625 504.375 375.064453125 504.375 399.942382812 c 0 + 504.375 424.819335938 498.09765625 448.170898438 487.060546875 468.561523438 c 0 + 481.883789062 478.124023438 485.440429688 490.071289062 495.00390625 495.248046875 c 0 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE210.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE210.glyph new file mode 100644 index 0000000000000..300672780c2ce --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE210.glyph @@ -0,0 +1,54 @@ +StartChar: uniE210 +Encoding: 57872 57872 52 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +167.77734375 633.333007812 m 2 + 167.77734375 555.555664062 l 2 + 167.77734375 534.078125 150.366210938 516.666992188 128.888671875 516.666992188 c 0 + 107.411132812 516.666992188 90 534.078125 90 555.555664062 c 2 + 90 633.333007812 l 2 + 90 697.766601562 142.233398438 750 206.666015625 750 c 2 + 284.443359375 750 l 2 + 305.921875 750 323.333007812 732.588867188 323.333007812 711.110351562 c 0 + 323.333007812 689.6328125 305.921875 672.22265625 284.443359375 672.22265625 c 2 + 206.666015625 672.22265625 l 2 + 185.188476562 672.22265625 167.77734375 654.810546875 167.77734375 633.333007812 c 2 +167.77734375 166.666992188 m 2 + 167.77734375 145.188476562 185.188476562 127.77734375 206.666015625 127.77734375 c 2 + 284.443359375 127.77734375 l 2 + 305.921875 127.77734375 323.333007812 110.3671875 323.333007812 88.8896484375 c 0 + 323.333007812 67.4111328125 305.921875 50 284.443359375 50 c 2 + 206.666015625 50 l 2 + 142.233398438 50 90 102.232421875 90 166.666992188 c 2 + 90 244.444335938 l 2 + 90 265.922851562 107.411132812 283.333007812 128.888671875 283.333007812 c 0 + 150.366210938 283.333007812 167.77734375 265.922851562 167.77734375 244.444335938 c 2 + 167.77734375 166.666992188 l 2 +673.333007812 672.22265625 m 2 + 595.555664062 672.22265625 l 2 + 574.077148438 672.22265625 556.666015625 689.6328125 556.666015625 711.110351562 c 0 + 556.666015625 732.588867188 574.077148438 750 595.555664062 750 c 2 + 673.333007812 750 l 2 + 737.767578125 750 790 697.766601562 790 633.333007812 c 2 + 790 555.555664062 l 2 + 790 534.078125 772.588867188 516.666992188 751.110351562 516.666992188 c 0 + 729.6328125 516.666992188 712.22265625 534.078125 712.22265625 555.555664062 c 2 + 712.22265625 633.333007812 l 2 + 712.22265625 654.810546875 694.811523438 672.22265625 673.333007812 672.22265625 c 2 +712.22265625 166.666992188 m 2 + 712.22265625 244.444335938 l 2 + 712.22265625 265.922851562 729.6328125 283.333007812 751.110351562 283.333007812 c 0 + 772.588867188 283.333007812 790 265.922851562 790 244.444335938 c 2 + 790 166.666992188 l 2 + 790 102.232421875 737.767578125 50 673.333007812 50 c 2 + 595.555664062 50 l 2 + 574.077148438 50 556.666015625 67.4111328125 556.666015625 88.8896484375 c 0 + 556.666015625 110.3671875 574.077148438 127.77734375 595.555664062 127.77734375 c 2 + 673.333007812 127.77734375 l 2 + 694.811523438 127.77734375 712.22265625 145.188476562 712.22265625 166.666992188 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE211.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE211.glyph new file mode 100644 index 0000000000000..71463733c38b2 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE211.glyph @@ -0,0 +1,54 @@ +StartChar: uniE211 +Encoding: 57873 57873 53 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +323.333007812 711.110351562 m 2 + 323.333007812 613.889648438 l 2 + 323.333007812 560.194335938 279.805664062 516.666992188 226.110351562 516.666992188 c 2 + 128.888671875 516.666992188 l 2 + 107.411132812 516.666992188 90 534.078125 90 555.555664062 c 0 + 90 577.033203125 107.411132812 594.444335938 128.888671875 594.444335938 c 2 + 226.110351562 594.444335938 l 2 + 236.849609375 594.444335938 245.555664062 603.150390625 245.555664062 613.889648438 c 2 + 245.555664062 711.110351562 l 2 + 245.555664062 732.588867188 262.965820312 750 284.443359375 750 c 0 + 305.921875 750 323.333007812 732.588867188 323.333007812 711.110351562 c 2 +323.333007812 88.8896484375 m 2 + 323.333007812 67.4111328125 305.921875 50 284.443359375 50 c 0 + 262.965820312 50 245.555664062 67.4111328125 245.555664062 88.8896484375 c 2 + 245.555664062 186.110351562 l 2 + 245.555664062 196.848632812 236.849609375 205.555664062 226.110351562 205.555664062 c 2 + 128.888671875 205.555664062 l 2 + 107.411132812 205.555664062 90 222.966796875 90 244.444335938 c 0 + 90 265.922851562 107.411132812 283.333007812 128.888671875 283.333007812 c 2 + 226.110351562 283.333007812 l 2 + 279.805664062 283.333007812 323.333007812 239.8046875 323.333007812 186.110351562 c 2 + 323.333007812 88.8896484375 l 2 +595.555664062 750 m 0 + 617.033203125 750 634.443359375 732.588867188 634.443359375 711.110351562 c 2 + 634.443359375 613.889648438 l 2 + 634.443359375 603.150390625 643.151367188 594.444335938 653.888671875 594.444335938 c 2 + 751.110351562 594.444335938 l 2 + 772.588867188 594.444335938 790 577.033203125 790 555.555664062 c 0 + 790 534.078125 772.588867188 516.666992188 751.110351562 516.666992188 c 2 + 653.888671875 516.666992188 l 2 + 600.1953125 516.666992188 556.666015625 560.194335938 556.666015625 613.889648438 c 2 + 556.666015625 711.110351562 l 2 + 556.666015625 732.588867188 574.077148438 750 595.555664062 750 c 0 +556.666015625 88.8896484375 m 2 + 556.666015625 186.110351562 l 2 + 556.666015625 239.8046875 600.1953125 283.333007812 653.888671875 283.333007812 c 2 + 751.110351562 283.333007812 l 2 + 772.588867188 283.333007812 790 265.922851562 790 244.444335938 c 0 + 790 222.966796875 772.588867188 205.555664062 751.110351562 205.555664062 c 2 + 653.888671875 205.555664062 l 2 + 643.151367188 205.555664062 634.443359375 196.848632812 634.443359375 186.110351562 c 2 + 634.443359375 88.8896484375 l 2 + 634.443359375 67.4111328125 617.033203125 50 595.555664062 50 c 0 + 574.077148438 50 556.666015625 67.4111328125 556.666015625 88.8896484375 c 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE212.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE212.glyph new file mode 100644 index 0000000000000..3bfecae861044 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE212.glyph @@ -0,0 +1,33 @@ +StartChar: uniE212 +Encoding: 57874 57874 54 +Width: 880 +VWidth: 1134 +Flags: HW +LayerCount: 2 +Fore +SplineSet +99.1748046875 733.064453125 m 1 + 102.813476562 737.186523438 l 2 + 118.584960938 752.95703125 143.401367188 754.169921875 160.564453125 740.825195312 c 2 + 164.685546875 737.186523438 l 1 + 440 461.90625 l 1 + 715.314453125 737.186523438 l 2 + 732.3984375 754.271484375 760.1015625 754.271484375 777.185546875 737.186523438 c 0 + 794.270507812 720.100585938 794.270507812 692.399414062 777.185546875 675.314453125 c 2 + 501.90625 400 l 1 + 777.185546875 124.685546875 l 2 + 792.958007812 108.9140625 794.168945312 84.0986328125 780.825195312 66.935546875 c 2 + 777.185546875 62.814453125 l 2 + 761.4140625 47.0419921875 736.598632812 45.8310546875 719.435546875 59.1748046875 c 2 + 715.314453125 62.814453125 l 1 + 440 338.09375 l 1 + 164.685546875 62.814453125 l 2 + 147.600585938 45.7294921875 119.899414062 45.7294921875 102.813476562 62.814453125 c 0 + 85.728515625 79.8984375 85.728515625 107.6015625 102.813476562 124.685546875 c 2 + 378.09375 400 l 1 + 102.813476562 675.314453125 l 2 + 87.04296875 691.0859375 85.830078125 715.901367188 99.1748046875 733.064453125 c 2 + 102.813476562 737.186523438 l 1 + 99.1748046875 733.064453125 l 1 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE213.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE213.glyph new file mode 100644 index 0000000000000..cce40a7c65ea9 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE213.glyph @@ -0,0 +1,17 @@ +StartChar: uniE213 +Encoding: 57875 57875 55 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +128.880859375 361.118164062 m 2 + 107.407226562 361.118164062 90 378.525390625 90 400 c 0 + 90 421.474609375 107.407226562 438.881835938 128.880859375 438.881835938 c 2 + 751.118164062 438.881835938 l 2 + 772.591796875 438.881835938 790 421.474609375 790 400 c 0 + 790 378.525390625 772.591796875 361.118164062 751.118164062 361.118164062 c 2 + 128.880859375 361.118164062 l 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE214.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE214.glyph new file mode 100644 index 0000000000000..8dcfa8edce94a --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE214.glyph @@ -0,0 +1,28 @@ +StartChar: uniE214 +Encoding: 57876 57876 56 +Width: 880 +VWidth: 1053 +Flags: HW +LayerCount: 2 +Fore +SplineSet +206.666015625 750 m 2 + 673.333007812 750 l 2 + 737.767578125 750 790 697.766601562 790 633.333007812 c 2 + 790 166.666992188 l 2 + 790 102.232421875 737.767578125 50 673.333007812 50 c 2 + 206.666015625 50 l 2 + 142.233398438 50 90 102.232421875 90 166.666992188 c 2 + 90 633.333007812 l 2 + 90 697.766601562 142.233398438 750 206.666015625 750 c 2 +206.666015625 672.22265625 m 2 + 185.188476562 672.22265625 167.77734375 654.810546875 167.77734375 633.333007812 c 2 + 167.77734375 166.666992188 l 2 + 167.77734375 145.188476562 185.188476562 127.77734375 206.666015625 127.77734375 c 2 + 673.333007812 127.77734375 l 2 + 694.811523438 127.77734375 712.22265625 145.188476562 712.22265625 166.666992188 c 2 + 712.22265625 633.333007812 l 2 + 712.22265625 654.810546875 694.811523438 672.22265625 673.333007812 672.22265625 c 2 + 206.666015625 672.22265625 l 2 +EndSplineSet +EndChar diff --git a/TOOLS/mpv-osd-symbols.sfdir/uniE215.glyph b/TOOLS/mpv-osd-symbols.sfdir/uniE215.glyph new file mode 100644 index 0000000000000..44750f90e8ca6 --- /dev/null +++ b/TOOLS/mpv-osd-symbols.sfdir/uniE215.glyph @@ -0,0 +1,32 @@ +StartChar: uniE215 +Encoding: 57877 57877 57 +Width: 880 +VWidth: 987 +Flags: HW +LayerCount: 2 +Fore +SplineSet +283.115234375 645 m 2 + 230.326171875 645 l 1 + 234.793945312 703.733398438 283.866210938 750 343.74609375 750 c 2 + 623.75 750 l 2 + 715.564453125 750 790 675.567382812 790 583.75 c 2 + 790 303.75 l 2 + 790 243.872070312 743.733398438 194.798828125 685 190.33203125 c 1 + 685 243.119140625 l 2 + 714.682617188 247.365234375 737.5 272.89453125 737.5 303.75 c 2 + 737.5 583.75 l 2 + 737.5 646.572265625 686.5703125 697.5 623.75 697.5 c 2 + 343.74609375 697.5 l 2 + 312.888671875 697.5 287.361328125 674.681640625 283.115234375 645 c 2 +203.750976562 610 m 2 + 536.25390625 610 l 2 + 599.078125 610 650.006835938 559.072265625 650.006835938 496.249023438 c 2 + 650.006835938 163.75 l 2 + 650.006835938 100.928710938 599.078125 50 536.25390625 50 c 2 + 203.750976562 50 l 2 + 140.927734375 50 90 100.928710938 90 163.75 c 2 + 90 496.249023438 l 2 + 90 559.072265625 140.927734375 610 203.750976562 610 c 2 +EndSplineSet +EndChar diff --git a/player/lua/osc.lua b/player/lua/osc.lua index 6ccb5a27b1bae..7e581eaf71f3c 100644 --- a/player/lua/osc.lua +++ b/player/lua/osc.lua @@ -60,6 +60,7 @@ local user_opts = { livemarkers = true, -- update seekbar chapter markers on duration change chapter_fmt = "Chapter: %s", -- chapter print format for seekbar-hover. "no" to disable unicodeminus = false, -- whether to use the Unicode minus sign character + icon_style = "classic", -- icon style: "classic" or "fluent" background_color = "#000000", -- background color of the osc timecode_color = "#FFFFFF", -- color of the progress bar and time color @@ -146,29 +147,63 @@ local icon_font = "mpv-osd-symbols" -- glyph='\u{e000}' output='' -- for i = 1, #glyph do output = output .. '\\' .. string.byte(glyph, i) end -- print(output) -local icons = { - menu = "\238\132\130", -- E102 - prev = "\238\132\144", -- E110 - next = "\238\132\129", -- E101 - pause = "\238\128\130", -- E002 - play = "\238\132\129", -- E101 - clock = "\238\128\134", -- E006 - play_backward = "\238\132\144", -- E110 - skip_backward = "\238\128\132", -- E004 - skip_forward = "\238\128\133", -- E005 - chapter_prev = "\238\132\132", -- E104 - chapter_next = "\238\132\133", -- E105 - audio = "\238\132\134", -- E106 - subtitle = "\238\132\135", -- E107 - mute = "\238\132\138", -- E10A - volume = {"\238\132\139", "\238\132\140", "\238\132\141", "\238\132\142"},-- E10B E10C E10D E10E - fullscreen = "\238\132\136", -- E108 - exit_fullscreen = "\238\132\137",-- E109 - close = "\238\132\149", -- E115 - minimize = "\238\132\146", -- E112 - maximize = "\238\132\147", -- E113 - unmaximize = "\238\132\148", -- E114 +local icon_styles = { + classic = { + menu = "\238\132\130", -- E102 + prev = "\238\132\144", -- E110 + next = "\238\132\129", -- E101 + pause = "\238\128\130", -- E002 + play = "\238\132\129", -- E101 + clock = "\238\128\134", -- E006 + play_backward = "\238\132\144", -- E110 + skip_backward = "\238\128\132", -- E004 + skip_forward = "\238\128\133", -- E005 + chapter_prev = "\238\132\132", -- E104 + chapter_next = "\238\132\133", -- E105 + audio = "\238\132\134", -- E106 + subtitle = "\238\132\135", -- E107 + mute = "\238\132\138", -- E10A + volume = { -- E10B-E10E + "\238\132\139", "\238\132\140", "\238\132\141", "\238\132\142", + }, + fullscreen = "\238\132\136", -- E108 + exit_fullscreen = "\238\132\137",-- E109 + close = "\238\132\149", -- E115 + minimize = "\238\132\146", -- E112 + maximize = "\238\132\147", -- E113 + unmaximize = "\238\132\148", -- E114 + }, + fluent = { + menu = "\238\136\128", -- E200 + prev = "\238\136\129", -- E201 + next = "\238\136\130", -- E202 + pause = "\238\136\131", -- E203 + play = "\238\136\130", -- E202 + clock = "\238\136\132", -- E204 + play_backward = "\238\136\129", -- E201 + skip_backward = "\238\136\133", -- E205 + skip_forward = "\238\136\134", -- E206 + chapter_prev = "\238\136\135", -- E207 + chapter_next = "\238\136\136", -- E208 + audio = "\238\136\137", -- E209 + subtitle = "\238\136\138", -- E20A + mute = "\238\136\139", -- E20B + volume = { -- E20C-E20F + "\238\136\140", "\238\136\141", "\238\136\142", "\238\136\143", + }, + fullscreen = "\238\136\144", -- E210 + exit_fullscreen = "\238\136\145",-- E211 + close = "\238\136\146", -- E212 + minimize = "\238\136\147", -- E213 + maximize = "\238\136\148", -- E214 + unmaximize = "\238\136\149", -- E215 + }, } +local icons = icon_styles.classic + +local function set_icon_style() + icons = icon_styles[user_opts.icon_style] or icon_styles.classic +end local osc_param = { -- calculated by osc_init() playresy = 0, -- canvas size Y @@ -3059,6 +3094,7 @@ end -- read options from config and command-line opt.read_options(user_opts, "osc", function(changed) validate_user_opts() + set_icon_style() set_osc_styles() set_time_styles(changed.timetotal, changed.timems) if changed.tick_delay or changed.tick_delay_follow_display_fps then @@ -3071,6 +3107,7 @@ opt.read_options(user_opts, "osc", function(changed) end) validate_user_opts() +set_icon_style() set_osc_styles() set_time_styles(true, true) set_tick_delay() diff --git a/sub/osd_font.otf b/sub/osd_font.otf index b044ad50474d7..4daf2f367c088 100644 Binary files a/sub/osd_font.otf and b/sub/osd_font.otf differ