File info: Implemented support for Album Artist and Codec fields
parent
e5aec4b618
commit
fdae7eec21
|
@ -33,6 +33,7 @@
|
||||||
|
|
||||||
IBOutlet NSMenuItem *showIndexColumn;
|
IBOutlet NSMenuItem *showIndexColumn;
|
||||||
IBOutlet NSMenuItem *showTitleColumn;
|
IBOutlet NSMenuItem *showTitleColumn;
|
||||||
|
IBOutlet NSMenuItem *showAlbumArtistColumn;
|
||||||
IBOutlet NSMenuItem *showArtistColumn;
|
IBOutlet NSMenuItem *showArtistColumn;
|
||||||
IBOutlet NSMenuItem *showAlbumColumn;
|
IBOutlet NSMenuItem *showAlbumColumn;
|
||||||
IBOutlet NSMenuItem *showGenreColumn;
|
IBOutlet NSMenuItem *showGenreColumn;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="19162" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17701"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19162"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
|
@ -15,16 +15,16 @@
|
||||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
<window title="Info Inspector" separatorStyle="none" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" hidesOnDeactivate="YES" visibleAtLaunch="NO" frameAutosaveName="InfoInspector" animationBehavior="default" titlebarAppearsTransparent="YES" id="1" customClass="NSPanel">
|
<window title="Info Inspector" separatorStyle="none" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" hidesOnDeactivate="YES" visibleAtLaunch="NO" frameAutosaveName="InfoInspector" animationBehavior="default" titlebarAppearsTransparent="YES" id="1" customClass="NSPanel">
|
||||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" resizable="YES" utility="YES" nonactivatingPanel="YES" HUD="YES"/>
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" resizable="YES" utility="YES" nonactivatingPanel="YES" HUD="YES"/>
|
||||||
<rect key="contentRect" x="700" y="80" width="300" height="450"/>
|
<rect key="contentRect" x="700" y="80" width="300" height="494"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1792" height="1095"/>
|
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
||||||
<value key="minSize" type="size" width="240" height="420"/>
|
<value key="minSize" type="size" width="240" height="420"/>
|
||||||
<value key="maxSize" type="size" width="400" height="600"/>
|
<value key="maxSize" type="size" width="400" height="600"/>
|
||||||
<view key="contentView" id="2">
|
<view key="contentView" id="2">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="300" height="450"/>
|
<rect key="frame" x="0.0" y="0.0" width="300" height="494"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9">
|
||||||
<rect key="frame" x="69" y="416" width="37" height="14"/>
|
<rect key="frame" x="69" y="438" width="37" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Artist:" id="10">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Artist:" id="10">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="11">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="11">
|
||||||
<rect key="frame" x="63" y="394" width="43" height="14"/>
|
<rect key="frame" x="63" y="416" width="43" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Album:" id="12">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Album:" id="12">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="13">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="13">
|
||||||
<rect key="frame" x="68" y="350" width="38" height="14"/>
|
<rect key="frame" x="68" y="372" width="38" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Track:" id="14">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Track:" id="14">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="15">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="15">
|
||||||
<rect key="frame" x="61" y="328" width="45" height="14"/>
|
<rect key="frame" x="61" y="350" width="45" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Length:" id="16">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Length:" id="16">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="17">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="17">
|
||||||
<rect key="frame" x="74" y="306" width="32" height="14"/>
|
<rect key="frame" x="74" y="328" width="32" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Year:" id="18">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Year:" id="18">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="19">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="19">
|
||||||
<rect key="frame" x="66" y="284" width="40" height="14"/>
|
<rect key="frame" x="66" y="306" width="40" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Genre:" id="20">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Genre:" id="20">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="21">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="21">
|
||||||
<rect key="frame" x="33" y="240" width="73" height="14"/>
|
<rect key="frame" x="33" y="262" width="73" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Sample Rate:" id="22">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Sample Rate:" id="22">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="27">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="27">
|
||||||
<rect key="frame" x="49" y="218" width="57" height="14"/>
|
<rect key="frame" x="49" y="240" width="57" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Channels:" id="28">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Channels:" id="28">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -96,7 +96,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="29">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="29">
|
||||||
<rect key="frame" x="64" y="196" width="42" height="14"/>
|
<rect key="frame" x="64" y="218" width="42" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Bitrate:" id="32">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Bitrate:" id="32">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="30">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="30">
|
||||||
<rect key="frame" x="17" y="174" width="89" height="14"/>
|
<rect key="frame" x="17" y="196" width="89" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Bits Per Sample:" id="31">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Bits Per Sample:" id="31">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="23">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="23">
|
||||||
<rect key="frame" x="74" y="372" width="32" height="14"/>
|
<rect key="frame" x="74" y="394" width="32" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Title:" id="24">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Title:" id="24">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="33" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="33" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="416" width="170" height="14"/>
|
<rect key="frame" x="113" y="438" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="34">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="34">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -135,7 +135,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="35" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="35" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="394" width="170" height="14"/>
|
<rect key="frame" x="113" y="416" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="36">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="36">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="37" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="37" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="372" width="170" height="14"/>
|
<rect key="frame" x="113" y="394" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="38">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="38">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -159,7 +159,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="39" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="39" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="350" width="170" height="14"/>
|
<rect key="frame" x="113" y="372" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="40">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="40">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -172,7 +172,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="41" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="41" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="328" width="170" height="14"/>
|
<rect key="frame" x="113" y="350" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="42">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="42">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -185,7 +185,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="43" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="43" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="306" width="170" height="14"/>
|
<rect key="frame" x="113" y="328" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="44">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="44">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="45" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="45" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="284" width="170" height="14"/>
|
<rect key="frame" x="113" y="306" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="46">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="46">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -212,7 +212,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="49" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="49" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="240" width="170" height="14"/>
|
<rect key="frame" x="113" y="262" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="50">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="50">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -224,7 +224,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="51" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="51" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="218" width="170" height="14"/>
|
<rect key="frame" x="113" y="240" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="52">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="52">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -236,7 +236,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="53" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="53" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="196" width="170" height="14"/>
|
<rect key="frame" x="113" y="218" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="54">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="54">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -248,7 +248,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="55" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="55" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="174" width="170" height="14"/>
|
<rect key="frame" x="113" y="196" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="56">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="56">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -259,8 +259,29 @@
|
||||||
<binding destination="-2" name="value" keyPath="valueToDisplay.bitsPerSample" id="122"/>
|
<binding destination="-2" name="value" keyPath="valueToDisplay.bitsPerSample" id="122"/>
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QPg-Mb-Urn">
|
||||||
|
<rect key="frame" x="66" y="174" width="40" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Codec:" id="cbq-TT-CZX">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ijS-y2-eCZ" customClass="ToolTipTextField">
|
||||||
|
<rect key="frame" x="113" y="174" width="170" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="Yby-OU-cqP">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<connections>
|
||||||
|
<binding destination="-2" name="value" keyPath="valueToDisplay.codec" id="Tle-Vx-BN5"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="84">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="84">
|
||||||
<rect key="frame" x="50" y="262" width="56" height="14"/>
|
<rect key="frame" x="50" y="284" width="56" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Filename:" id="85">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Filename:" id="85">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -269,7 +290,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="86" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="86" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="262" width="170" height="14"/>
|
<rect key="frame" x="113" y="284" width="170" height="14"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="87">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="87">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -294,6 +315,27 @@
|
||||||
</binding>
|
</binding>
|
||||||
</connections>
|
</connections>
|
||||||
</imageView>
|
</imageView>
|
||||||
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vB6-9J-5qg">
|
||||||
|
<rect key="frame" x="33" y="460" width="72" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Album Artist:" id="LFJ-QQ-gGr">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cj0-Tw-xpq" customClass="ToolTipTextField">
|
||||||
|
<rect key="frame" x="112" y="460" width="170" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="B8w-o8-ZBw">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<connections>
|
||||||
|
<binding destination="-2" name="value" keyPath="valueToDisplay.albumartist" id="gTS-bf-rHT"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
</subviews>
|
</subviews>
|
||||||
</view>
|
</view>
|
||||||
<point key="canvasLocation" x="136" y="131"/>
|
<point key="canvasLocation" x="136" y="131"/>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="19115.3" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="19162" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19115.3"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19162"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
|
@ -32,10 +32,10 @@
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="KWC-Ti-8KY">
|
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="KWC-Ti-8KY">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="378"/>
|
<rect key="frame" x="0.0" y="0.0" width="1000" height="378"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" alternatingRowBackgroundColors="YES" autosaveName="Playlist" rowHeight="18" headerView="1517" id="207" customClass="PlaylistView">
|
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" alternatingRowBackgroundColors="YES" autosaveName="Playlist" rowHeight="18" headerView="1517" id="207" customClass="PlaylistView">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="361"/>
|
<rect key="frame" x="0.0" y="0.0" width="1086" height="361"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<size key="intercellSpacing" width="3" height="6"/>
|
<size key="intercellSpacing" width="3" height="6"/>
|
||||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
@ -79,7 +79,7 @@
|
||||||
</binding>
|
</binding>
|
||||||
</connections>
|
</connections>
|
||||||
</tableColumn>
|
</tableColumn>
|
||||||
<tableColumn identifier="title" editable="NO" width="152" minWidth="96" maxWidth="1024" id="208">
|
<tableColumn identifier="title" editable="NO" width="125.5" minWidth="96" maxWidth="1024" id="208">
|
||||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Title">
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Title">
|
||||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
@ -100,6 +100,26 @@
|
||||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1914"/>
|
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1914"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableColumn>
|
</tableColumn>
|
||||||
|
<tableColumn identifier="index" editable="NO" width="150" minWidth="96" maxWidth="1024" id="yGV-gP-Wl6">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Album Artist">
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="M6d-rj-lEz">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<connections>
|
||||||
|
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="dJs-UO-m5r"/>
|
||||||
|
<binding destination="218" name="value" keyPath="arrangedObjects.albumartist" id="OFk-g8-Jbd">
|
||||||
|
<dictionary key="options">
|
||||||
|
<bool key="NSConditionallySetsEditable" value="YES"/>
|
||||||
|
</dictionary>
|
||||||
|
</binding>
|
||||||
|
</connections>
|
||||||
|
</tableColumn>
|
||||||
<tableColumn identifier="artist" editable="NO" width="149.5" minWidth="96" maxWidth="1024" id="391">
|
<tableColumn identifier="artist" editable="NO" width="149.5" minWidth="96" maxWidth="1024" id="391">
|
||||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Artist">
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Artist">
|
||||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
@ -195,7 +215,7 @@
|
||||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1922"/>
|
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1922"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableColumn>
|
</tableColumn>
|
||||||
<tableColumn identifier="track" editable="NO" width="72" minWidth="24" maxWidth="72" id="850">
|
<tableColumn identifier="track" editable="NO" width="34.5" minWidth="24" maxWidth="72" id="850">
|
||||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="№">
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="right" title="№">
|
||||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
@ -251,6 +271,26 @@
|
||||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1925"/>
|
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1925"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableColumn>
|
</tableColumn>
|
||||||
|
<tableColumn identifier="filename" editable="NO" width="64" minWidth="32" maxWidth="1024" hidden="YES" id="3A3-9o-Gh9" userLabel="Codec">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Filename">
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="lBy-Uc-vCA">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<connections>
|
||||||
|
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="VQf-MC-VR1"/>
|
||||||
|
<binding destination="218" name="value" keyPath="arrangedObjects.codec" id="hO0-YW-E7w">
|
||||||
|
<dictionary key="options">
|
||||||
|
<bool key="NSConditionallySetsEditable" value="YES"/>
|
||||||
|
</dictionary>
|
||||||
|
</binding>
|
||||||
|
</connections>
|
||||||
|
</tableColumn>
|
||||||
</tableColumns>
|
</tableColumns>
|
||||||
<connections>
|
<connections>
|
||||||
<binding destination="1689" name="rowHeight" keyPath="values.fontSize" id="1927">
|
<binding destination="1689" name="rowHeight" keyPath="values.fontSize" id="1927">
|
||||||
|
@ -278,7 +318,7 @@
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
</scroller>
|
</scroller>
|
||||||
<tableHeaderView key="headerView" wantsLayer="YES" id="1517" customClass="PlaylistHeaderView">
|
<tableHeaderView key="headerView" wantsLayer="YES" id="1517" customClass="PlaylistHeaderView">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="17"/>
|
<rect key="frame" x="0.0" y="0.0" width="1086" height="17"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
</tableHeaderView>
|
</tableHeaderView>
|
||||||
</scrollView>
|
</scrollView>
|
||||||
|
@ -562,7 +602,7 @@
|
||||||
<outlet property="initialFirstResponder" destination="207" id="720"/>
|
<outlet property="initialFirstResponder" destination="207" id="720"/>
|
||||||
<outlet property="playlistView" destination="206" id="mah-wo-1nd"/>
|
<outlet property="playlistView" destination="206" id="mah-wo-1nd"/>
|
||||||
</connections>
|
</connections>
|
||||||
<point key="canvasLocation" x="130.5" y="131"/>
|
<point key="canvasLocation" x="130" y="131"/>
|
||||||
</window>
|
</window>
|
||||||
<window title="Cog" separatorStyle="none" allowsToolTipsWhenApplicationIsInactive="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="Mini Window" animationBehavior="default" toolbarStyle="unified" id="2234" userLabel="Mini Window (Window)" customClass="MiniWindow">
|
<window title="Cog" separatorStyle="none" allowsToolTipsWhenApplicationIsInactive="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="Mini Window" animationBehavior="default" toolbarStyle="unified" id="2234" userLabel="Mini Window (Window)" customClass="MiniWindow">
|
||||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||||
|
@ -1755,6 +1795,7 @@ Gw
|
||||||
<menuItem title="Track" state="on" keyEquivalent="R" id="1343"/>
|
<menuItem title="Track" state="on" keyEquivalent="R" id="1343"/>
|
||||||
<menuItem title="Year" state="on" keyEquivalent="Y" id="1344"/>
|
<menuItem title="Year" state="on" keyEquivalent="Y" id="1344"/>
|
||||||
</items>
|
</items>
|
||||||
|
<point key="canvasLocation" x="-166" y="-282"/>
|
||||||
</menu>
|
</menu>
|
||||||
<customView id="1611" userLabel="Volume View">
|
<customView id="1611" userLabel="Volume View">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="32" height="168"/>
|
<rect key="frame" x="0.0" y="0.0" width="32" height="168"/>
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
174C7A370F4FD43100E18B0F /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 174C7A360F4FD43100E18B0F /* libz.dylib */; };
|
|
||||||
32AE5A5A14E70ED600420CA0 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59A014E70ED600420CA0 /* config.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
32AE5A5A14E70ED600420CA0 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59A014E70ED600420CA0 /* config.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
32AE5A5C14E70ED600420CA0 /* apefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32AE59A414E70ED600420CA0 /* apefile.cpp */; };
|
32AE5A5C14E70ED600420CA0 /* apefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32AE59A414E70ED600420CA0 /* apefile.cpp */; };
|
||||||
32AE5A5D14E70ED600420CA0 /* apefile.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59A514E70ED600420CA0 /* apefile.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
32AE5A5D14E70ED600420CA0 /* apefile.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59A514E70ED600420CA0 /* apefile.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
|
@ -149,12 +148,13 @@
|
||||||
32AE5AFF14E70ED700420CA0 /* taglib_config.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE5A5914E70ED600420CA0 /* taglib_config.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
32AE5AFF14E70ED700420CA0 /* taglib_config.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE5A5914E70ED600420CA0 /* taglib_config.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
32AE5B0014E70F4700420CA0 /* tlist.tcc in Headers */ = {isa = PBXBuildFile; fileRef = 32AE5A4614E70ED600420CA0 /* tlist.tcc */; settings = {ATTRIBUTES = (Public, ); }; };
|
32AE5B0014E70F4700420CA0 /* tlist.tcc in Headers */ = {isa = PBXBuildFile; fileRef = 32AE5A4614E70ED600420CA0 /* tlist.tcc */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
32AE5B0114E70F4A00420CA0 /* tmap.tcc in Headers */ = {isa = PBXBuildFile; fileRef = 32AE5A4814E70ED600420CA0 /* tmap.tcc */; settings = {ATTRIBUTES = (Public, ); }; };
|
32AE5B0114E70F4A00420CA0 /* tmap.tcc in Headers */ = {isa = PBXBuildFile; fileRef = 32AE5A4814E70ED600420CA0 /* tmap.tcc */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
4872B8881A675CCB00674347 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4872B8871A675CCB00674347 /* libiconv.dylib */; };
|
|
||||||
83790D241809E8CA0073CF51 /* opusfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83790D201809E8CA0073CF51 /* opusfile.cpp */; };
|
83790D241809E8CA0073CF51 /* opusfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83790D201809E8CA0073CF51 /* opusfile.cpp */; };
|
||||||
83790D261809E8CA0073CF51 /* opusproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83790D221809E8CA0073CF51 /* opusproperties.cpp */; };
|
83790D261809E8CA0073CF51 /* opusproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83790D221809E8CA0073CF51 /* opusproperties.cpp */; };
|
||||||
83942C67269116530058BD3B /* flacfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59BF14E70ED600420CA0 /* flacfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
83942C67269116530058BD3B /* flacfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59BF14E70ED600420CA0 /* flacfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
83AF2CBE2622643300538240 /* apegenfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83AF2CBC2622643300538240 /* apegenfile.cpp */; };
|
83AF2CBE2622643300538240 /* apegenfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83AF2CBC2622643300538240 /* apegenfile.cpp */; };
|
||||||
83AF2CBF2622643300538240 /* apegenfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 83AF2CBD2622643300538240 /* apegenfile.h */; };
|
83AF2CBF2622643300538240 /* apegenfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 83AF2CBD2622643300538240 /* apegenfile.h */; };
|
||||||
|
83B46FCA2707EED200847FC9 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 83B46FC92707EED200847FC9 /* libiconv.tbd */; };
|
||||||
|
83B46FCC2707EEDB00847FC9 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 83B46FCB2707EEDB00847FC9 /* libz.tbd */; };
|
||||||
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
|
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
|
||||||
EDE862FD25CF6BD70086EFD3 /* tpropertymap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE862FC25CF6BD60086EFD3 /* tpropertymap.cpp */; };
|
EDE862FD25CF6BD70086EFD3 /* tpropertymap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE862FC25CF6BD60086EFD3 /* tpropertymap.cpp */; };
|
||||||
EDE8630225CF6C260086EFD3 /* tfilestream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE8630025CF6C260086EFD3 /* tfilestream.cpp */; };
|
EDE8630225CF6C260086EFD3 /* tfilestream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE8630025CF6C260086EFD3 /* tfilestream.cpp */; };
|
||||||
|
@ -358,7 +358,6 @@
|
||||||
32AE5A5714E70ED600420CA0 /* wavpackproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wavpackproperties.cpp; sourceTree = "<group>"; };
|
32AE5A5714E70ED600420CA0 /* wavpackproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wavpackproperties.cpp; sourceTree = "<group>"; };
|
||||||
32AE5A5814E70ED600420CA0 /* wavpackproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavpackproperties.h; sourceTree = "<group>"; };
|
32AE5A5814E70ED600420CA0 /* wavpackproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavpackproperties.h; sourceTree = "<group>"; };
|
||||||
32AE5A5914E70ED600420CA0 /* taglib_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = taglib_config.h; path = taglib/taglib_config.h; sourceTree = "<group>"; };
|
32AE5A5914E70ED600420CA0 /* taglib_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = taglib_config.h; path = taglib/taglib_config.h; sourceTree = "<group>"; };
|
||||||
4872B8871A675CCB00674347 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
|
|
||||||
833F683D1CDBCAB300AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
833F683D1CDBCAB300AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
835C889822CC1889001B4B3F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
835C889822CC1889001B4B3F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
83790D201809E8CA0073CF51 /* opusfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opusfile.cpp; sourceTree = "<group>"; };
|
83790D201809E8CA0073CF51 /* opusfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = opusfile.cpp; sourceTree = "<group>"; };
|
||||||
|
@ -367,6 +366,8 @@
|
||||||
83790D231809E8CA0073CF51 /* opusproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusproperties.h; sourceTree = "<group>"; };
|
83790D231809E8CA0073CF51 /* opusproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusproperties.h; sourceTree = "<group>"; };
|
||||||
83AF2CBC2622643300538240 /* apegenfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = apegenfile.cpp; sourceTree = "<group>"; };
|
83AF2CBC2622643300538240 /* apegenfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = apegenfile.cpp; sourceTree = "<group>"; };
|
||||||
83AF2CBD2622643300538240 /* apegenfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = apegenfile.h; sourceTree = "<group>"; };
|
83AF2CBD2622643300538240 /* apegenfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = apegenfile.h; sourceTree = "<group>"; };
|
||||||
|
83B46FC92707EED200847FC9 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
|
||||||
|
83B46FCB2707EEDB00847FC9 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||||
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||||
8DC2EF5B0486A6940098B216 /* TagLib.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TagLib.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
8DC2EF5B0486A6940098B216 /* TagLib.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TagLib.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
EDE862FC25CF6BD60086EFD3 /* tpropertymap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tpropertymap.cpp; sourceTree = "<group>"; };
|
EDE862FC25CF6BD60086EFD3 /* tpropertymap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tpropertymap.cpp; sourceTree = "<group>"; };
|
||||||
|
@ -488,8 +489,8 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
4872B8881A675CCB00674347 /* libiconv.dylib in Frameworks */,
|
83B46FCA2707EED200847FC9 /* libiconv.tbd in Frameworks */,
|
||||||
174C7A370F4FD43100E18B0F /* libz.dylib in Frameworks */,
|
83B46FCC2707EEDB00847FC9 /* libz.tbd in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -507,11 +508,11 @@
|
||||||
0867D691FE84028FC02AAC07 /* TagLib */ = {
|
0867D691FE84028FC02AAC07 /* TagLib */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4872B8871A675CCB00674347 /* libiconv.dylib */,
|
|
||||||
8E75700C09F318D70080F1EE /* Source */,
|
8E75700C09F318D70080F1EE /* Source */,
|
||||||
089C1665FE841158C02AAC07 /* Resources */,
|
089C1665FE841158C02AAC07 /* Resources */,
|
||||||
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
|
0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
|
||||||
034768DFFF38A50411DB9C8B /* Products */,
|
034768DFFF38A50411DB9C8B /* Products */,
|
||||||
|
83B46FC82707EED200847FC9 /* Frameworks */,
|
||||||
);
|
);
|
||||||
name = TagLib;
|
name = TagLib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -897,6 +898,15 @@
|
||||||
path = opus;
|
path = opus;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
83B46FC82707EED200847FC9 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
83B46FCB2707EEDB00847FC9 /* libz.tbd */,
|
||||||
|
83B46FC92707EED200847FC9 /* libiconv.tbd */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
8E75700C09F318D70080F1EE /* Source */ = {
|
8E75700C09F318D70080F1EE /* Source */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
|
|
@ -123,6 +123,15 @@ String APE::Tag::title() const
|
||||||
return d->itemListMap["TITLE"].values().toString();
|
return d->itemListMap["TITLE"].values().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String APE::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
if(!d->itemListMap["ALBUMARTIST"].isEmpty())
|
||||||
|
return d->itemListMap["ALBUMARTIST"].values().toString();
|
||||||
|
if(!d->itemListMap["ALBUM ARTIST"].isEmpty())
|
||||||
|
return d->itemListMap["ALBUM ARTIST"].values().toString();
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String APE::Tag::artist() const
|
String APE::Tag::artist() const
|
||||||
{
|
{
|
||||||
if(d->itemListMap["ARTIST"].isEmpty())
|
if(d->itemListMap["ARTIST"].isEmpty())
|
||||||
|
@ -198,6 +207,11 @@ void APE::Tag::setTitle(const String &s)
|
||||||
addValue("TITLE", s, true);
|
addValue("TITLE", s, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void APE::Tag::setAlbumArtist(const String &s)
|
||||||
|
{
|
||||||
|
addValue("ALBUMARTIST", s, true);
|
||||||
|
}
|
||||||
|
|
||||||
void APE::Tag::setArtist(const String &s)
|
void APE::Tag::setArtist(const String &s)
|
||||||
{
|
{
|
||||||
addValue("ARTIST", s, true);
|
addValue("ARTIST", s, true);
|
||||||
|
|
|
@ -88,6 +88,7 @@ namespace TagLib {
|
||||||
// Reimplementations.
|
// Reimplementations.
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -100,6 +101,7 @@ namespace TagLib {
|
||||||
virtual float rgTrackPeak() const;
|
virtual float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
virtual void setArtist(const String &s);
|
virtual void setArtist(const String &s);
|
||||||
virtual void setAlbum(const String &s);
|
virtual void setAlbum(const String &s);
|
||||||
virtual void setComment(const String &s);
|
virtual void setComment(const String &s);
|
||||||
|
|
|
@ -55,6 +55,11 @@ String ASF::Tag::title() const
|
||||||
return d->title;
|
return d->title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String ASF::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String ASF::Tag::artist() const
|
String ASF::Tag::artist() const
|
||||||
{
|
{
|
||||||
return d->artist;
|
return d->artist;
|
||||||
|
@ -135,6 +140,10 @@ void ASF::Tag::setTitle(const String &value)
|
||||||
d->title = value;
|
d->title = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ASF::Tag::setAlbumArtist(const String &)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void ASF::Tag::setArtist(const String &value)
|
void ASF::Tag::setArtist(const String &value)
|
||||||
{
|
{
|
||||||
d->artist = value;
|
d->artist = value;
|
||||||
|
|
|
@ -54,6 +54,11 @@ namespace TagLib {
|
||||||
*/
|
*/
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the album artist name.
|
||||||
|
*/
|
||||||
|
virtual String albumartist() const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns the artist name.
|
* Returns the artist name.
|
||||||
*/
|
*/
|
||||||
|
@ -108,6 +113,11 @@ namespace TagLib {
|
||||||
*/
|
*/
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets the artist to \a s.
|
||||||
|
*/
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Sets the artist to \a s.
|
* Sets the artist to \a s.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -59,6 +59,11 @@ String Mod::Tag::title() const
|
||||||
return d->title;
|
return d->title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String Mod::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String Mod::Tag::artist() const
|
String Mod::Tag::artist() const
|
||||||
{
|
{
|
||||||
return String();
|
return String();
|
||||||
|
@ -119,6 +124,10 @@ void Mod::Tag::setTitle(const String &title)
|
||||||
d->title = title;
|
d->title = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Mod::Tag::setAlbumArtist(const String &)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void Mod::Tag::setArtist(const String &)
|
void Mod::Tag::setArtist(const String &)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,6 +56,12 @@ namespace TagLib {
|
||||||
*/
|
*/
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Not supported by module files. Therefore always returns String::null.
|
||||||
|
*/
|
||||||
|
virtual String albumartist() const;
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Not supported by module files. Therefore always returns String::null.
|
* Not supported by module files. Therefore always returns String::null.
|
||||||
*/
|
*/
|
||||||
|
@ -127,6 +133,11 @@ namespace TagLib {
|
||||||
*/
|
*/
|
||||||
virtual void setTitle(const String &title);
|
virtual void setTitle(const String &title);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Not supported by module files and therefore ignored.
|
||||||
|
*/
|
||||||
|
virtual void setAlbumArtist(const String &albumartist);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Not supported by module files and therefore ignored.
|
* Not supported by module files and therefore ignored.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -732,6 +732,14 @@ MP4::Tag::artist() const
|
||||||
return String();
|
return String();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String
|
||||||
|
MP4::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
if(d->items.contains("aART"))
|
||||||
|
return d->items["aART"].toStringList().toString(", ");
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String
|
String
|
||||||
MP4::Tag::album() const
|
MP4::Tag::album() const
|
||||||
{
|
{
|
||||||
|
@ -802,6 +810,12 @@ MP4::Tag::setTitle(const String &value)
|
||||||
setTextItem("\251nam", value);
|
setTextItem("\251nam", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
MP4::Tag::setAlbumArtist(const String &value)
|
||||||
|
{
|
||||||
|
setTextItem("aART", value);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MP4::Tag::setArtist(const String &value)
|
MP4::Tag::setArtist(const String &value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,6 +54,7 @@ namespace TagLib {
|
||||||
bool save();
|
bool save();
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -66,6 +67,7 @@ namespace TagLib {
|
||||||
float rgTrackPeak() const;
|
float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &value);
|
virtual void setTitle(const String &value);
|
||||||
|
virtual void setAlbumArtist(const String &value);
|
||||||
virtual void setArtist(const String &value);
|
virtual void setArtist(const String &value);
|
||||||
virtual void setAlbum(const String &value);
|
virtual void setAlbum(const String &value);
|
||||||
virtual void setComment(const String &value);
|
virtual void setComment(const String &value);
|
||||||
|
|
|
@ -132,6 +132,11 @@ String ID3v1::Tag::title() const
|
||||||
return d->title;
|
return d->title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String ID3v1::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String ID3v1::Tag::artist() const
|
String ID3v1::Tag::artist() const
|
||||||
{
|
{
|
||||||
return d->artist;
|
return d->artist;
|
||||||
|
@ -187,6 +192,10 @@ void ID3v1::Tag::setTitle(const String &s)
|
||||||
d->title = s;
|
d->title = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ID3v1::Tag::setAlbumArtist(const String &)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void ID3v1::Tag::setArtist(const String &s)
|
void ID3v1::Tag::setArtist(const String &s)
|
||||||
{
|
{
|
||||||
d->artist = s;
|
d->artist = s;
|
||||||
|
|
|
@ -136,6 +136,7 @@ namespace TagLib {
|
||||||
// Reimplementations.
|
// Reimplementations.
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -148,6 +149,7 @@ namespace TagLib {
|
||||||
virtual float rgTrackPeak() const;
|
virtual float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
virtual void setArtist(const String &s);
|
virtual void setArtist(const String &s);
|
||||||
virtual void setAlbum(const String &s);
|
virtual void setAlbum(const String &s);
|
||||||
virtual void setComment(const String &s);
|
virtual void setComment(const String &s);
|
||||||
|
|
|
@ -156,6 +156,13 @@ String ID3v2::Tag::artist() const
|
||||||
return String();
|
return String();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String ID3v2::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
if(!d->frameListMap["TPE2"].isEmpty())
|
||||||
|
return d->frameListMap["TPE2"].front()->toString();
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String ID3v2::Tag::album() const
|
String ID3v2::Tag::album() const
|
||||||
{
|
{
|
||||||
if(!d->frameListMap["TALB"].isEmpty())
|
if(!d->frameListMap["TALB"].isEmpty())
|
||||||
|
@ -282,6 +289,11 @@ void ID3v2::Tag::setArtist(const String &s)
|
||||||
setTextFrame("TPE1", s);
|
setTextFrame("TPE1", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ID3v2::Tag::setAlbumArtist(const String &s)
|
||||||
|
{
|
||||||
|
setTextFrame("TPE2", s);
|
||||||
|
}
|
||||||
|
|
||||||
void ID3v2::Tag::setAlbum(const String &s)
|
void ID3v2::Tag::setAlbum(const String &s)
|
||||||
{
|
{
|
||||||
setTextFrame("TALB", s);
|
setTextFrame("TALB", s);
|
||||||
|
|
|
@ -157,6 +157,7 @@ namespace TagLib {
|
||||||
// Reimplementations.
|
// Reimplementations.
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -171,6 +172,7 @@ namespace TagLib {
|
||||||
virtual float rgTrackPeak() const;
|
virtual float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
virtual void setArtist(const String &s);
|
virtual void setArtist(const String &s);
|
||||||
virtual void setAlbum(const String &s);
|
virtual void setAlbum(const String &s);
|
||||||
virtual void setComment(const String &s);
|
virtual void setComment(const String &s);
|
||||||
|
|
|
@ -85,6 +85,15 @@ String Ogg::XiphComment::title() const
|
||||||
return d->fieldListMap["TITLE"].toString();
|
return d->fieldListMap["TITLE"].toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String Ogg::XiphComment::albumartist() const
|
||||||
|
{
|
||||||
|
if(!d->fieldListMap["ALBUMARTIST"].isEmpty())
|
||||||
|
return d->fieldListMap["ALBUMARTIST"].toString();
|
||||||
|
if(!d->fieldListMap["ALBUM ARTIST"].isEmpty())
|
||||||
|
return d->fieldListMap["ALBUM ARTIST"].toString();
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String Ogg::XiphComment::artist() const
|
String Ogg::XiphComment::artist() const
|
||||||
{
|
{
|
||||||
if(d->fieldListMap["ARTIST"].isEmpty())
|
if(d->fieldListMap["ARTIST"].isEmpty())
|
||||||
|
@ -172,6 +181,11 @@ void Ogg::XiphComment::setTitle(const String &s)
|
||||||
addField("TITLE", s);
|
addField("TITLE", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Ogg::XiphComment::setAlbumArtist(const String &s)
|
||||||
|
{
|
||||||
|
addField("ALBUMARTIST", s);
|
||||||
|
}
|
||||||
|
|
||||||
void Ogg::XiphComment::setArtist(const String &s)
|
void Ogg::XiphComment::setArtist(const String &s)
|
||||||
{
|
{
|
||||||
addField("ARTIST", s);
|
addField("ARTIST", s);
|
||||||
|
|
|
@ -81,6 +81,7 @@ namespace TagLib {
|
||||||
virtual ~XiphComment();
|
virtual ~XiphComment();
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -93,6 +94,7 @@ namespace TagLib {
|
||||||
virtual float rgTrackPeak() const;
|
virtual float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
virtual void setArtist(const String &s);
|
virtual void setArtist(const String &s);
|
||||||
virtual void setAlbum(const String &s);
|
virtual void setAlbum(const String &s);
|
||||||
virtual void setComment(const String &s);
|
virtual void setComment(const String &s);
|
||||||
|
|
|
@ -93,6 +93,11 @@ String RIFF::Info::Tag::title() const
|
||||||
return fieldText("INAM");
|
return fieldText("INAM");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String RIFF::Info::Tag::albumartist() const
|
||||||
|
{
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
String RIFF::Info::Tag::artist() const
|
String RIFF::Info::Tag::artist() const
|
||||||
{
|
{
|
||||||
return fieldText("IART");
|
return fieldText("IART");
|
||||||
|
@ -148,6 +153,10 @@ void RIFF::Info::Tag::setTitle(const String &s)
|
||||||
setFieldText("INAM", s);
|
setFieldText("INAM", s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RIFF::Info::Tag::setAlbumArtist(const String &)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void RIFF::Info::Tag::setArtist(const String &s)
|
void RIFF::Info::Tag::setArtist(const String &s)
|
||||||
{
|
{
|
||||||
setFieldText("IART", s);
|
setFieldText("IART", s);
|
||||||
|
|
|
@ -103,6 +103,7 @@ namespace TagLib {
|
||||||
// Reimplementations
|
// Reimplementations
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -115,6 +116,7 @@ namespace TagLib {
|
||||||
virtual float rgTrackPeak() const;
|
virtual float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
virtual void setArtist(const String &s);
|
virtual void setArtist(const String &s);
|
||||||
virtual void setAlbum(const String &s);
|
virtual void setAlbum(const String &s);
|
||||||
virtual void setComment(const String &s);
|
virtual void setComment(const String &s);
|
||||||
|
|
|
@ -47,6 +47,7 @@ Tag::~Tag()
|
||||||
bool Tag::isEmpty() const
|
bool Tag::isEmpty() const
|
||||||
{
|
{
|
||||||
return (title().isEmpty() &&
|
return (title().isEmpty() &&
|
||||||
|
albumartist().isEmpty() &&
|
||||||
artist().isEmpty() &&
|
artist().isEmpty() &&
|
||||||
album().isEmpty() &&
|
album().isEmpty() &&
|
||||||
comment().isEmpty() &&
|
comment().isEmpty() &&
|
||||||
|
@ -60,6 +61,8 @@ PropertyMap Tag::properties() const
|
||||||
PropertyMap map;
|
PropertyMap map;
|
||||||
if(!(title().isEmpty()))
|
if(!(title().isEmpty()))
|
||||||
map["TITLE"].append(title());
|
map["TITLE"].append(title());
|
||||||
|
if(!(albumartist().isEmpty()))
|
||||||
|
map["ALBUMARTIST"].append(albumartist());
|
||||||
if(!(artist().isEmpty()))
|
if(!(artist().isEmpty()))
|
||||||
map["ARTIST"].append(artist());
|
map["ARTIST"].append(artist());
|
||||||
if(!(album().isEmpty()))
|
if(!(album().isEmpty()))
|
||||||
|
@ -91,6 +94,16 @@ PropertyMap Tag::setProperties(const PropertyMap &origProps)
|
||||||
} else
|
} else
|
||||||
setTitle(String());
|
setTitle(String());
|
||||||
|
|
||||||
|
if(properties.contains("ALBUMARTIST") ||
|
||||||
|
properties.contains("ALBUM ARTIST")) {
|
||||||
|
if (properties.contains("ALBUMARTIST"))
|
||||||
|
setAlbumArtist(properties["ALBUMARTIST"].front());
|
||||||
|
else
|
||||||
|
setAlbumArtist(properties["ALBUM ARTIST"].front());
|
||||||
|
oneValueSet.append("ALBUMARTIST");
|
||||||
|
} else
|
||||||
|
setAlbumArtist(String());
|
||||||
|
|
||||||
if(properties.contains("ARTIST")) {
|
if(properties.contains("ARTIST")) {
|
||||||
setArtist(properties["ARTIST"].front());
|
setArtist(properties["ARTIST"].front());
|
||||||
oneValueSet.append("ARTIST");
|
oneValueSet.append("ARTIST");
|
||||||
|
@ -154,6 +167,7 @@ void Tag::duplicate(const Tag *source, Tag *target, bool overwrite) // static
|
||||||
{
|
{
|
||||||
if(overwrite) {
|
if(overwrite) {
|
||||||
target->setTitle(source->title());
|
target->setTitle(source->title());
|
||||||
|
target->setAlbumArtist(source->albumartist());
|
||||||
target->setArtist(source->artist());
|
target->setArtist(source->artist());
|
||||||
target->setAlbum(source->album());
|
target->setAlbum(source->album());
|
||||||
target->setComment(source->comment());
|
target->setComment(source->comment());
|
||||||
|
@ -164,6 +178,8 @@ void Tag::duplicate(const Tag *source, Tag *target, bool overwrite) // static
|
||||||
else {
|
else {
|
||||||
if(target->title().isEmpty())
|
if(target->title().isEmpty())
|
||||||
target->setTitle(source->title());
|
target->setTitle(source->title());
|
||||||
|
if(target->albumartist().isEmpty())
|
||||||
|
target->setAlbumArtist(source->albumartist());
|
||||||
if(target->artist().isEmpty())
|
if(target->artist().isEmpty())
|
||||||
target->setArtist(source->artist());
|
target->setArtist(source->artist());
|
||||||
if(target->album().isEmpty())
|
if(target->album().isEmpty())
|
||||||
|
|
|
@ -84,6 +84,12 @@ namespace TagLib {
|
||||||
*/
|
*/
|
||||||
virtual String title() const = 0;
|
virtual String title() const = 0;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Returns the album artist name; if no artist name is present in the tag
|
||||||
|
* String::null will be returned.
|
||||||
|
*/
|
||||||
|
virtual String albumartist() const = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns the artist name; if no artist name is present in the tag
|
* Returns the artist name; if no artist name is present in the tag
|
||||||
* String::null will be returned.
|
* String::null will be returned.
|
||||||
|
@ -149,6 +155,12 @@ namespace TagLib {
|
||||||
*/
|
*/
|
||||||
virtual void setTitle(const String &s) = 0;
|
virtual void setTitle(const String &s) = 0;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Sets the album artist to \a s. If \a s is String::null then this value will be
|
||||||
|
* cleared.
|
||||||
|
*/
|
||||||
|
virtual void setAlbumArtist(const String &s) = 0;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Sets the artist to \a s. If \a s is String::null then this value will be
|
* Sets the artist to \a s. If \a s is String::null then this value will be
|
||||||
* cleared.
|
* cleared.
|
||||||
|
|
|
@ -178,6 +178,11 @@ String TagUnion::title() const
|
||||||
stringUnion(title);
|
stringUnion(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String TagUnion::albumartist() const
|
||||||
|
{
|
||||||
|
stringUnion(albumartist);
|
||||||
|
}
|
||||||
|
|
||||||
String TagUnion::artist() const
|
String TagUnion::artist() const
|
||||||
{
|
{
|
||||||
stringUnion(artist);
|
stringUnion(artist);
|
||||||
|
@ -233,6 +238,11 @@ void TagUnion::setTitle(const String &s)
|
||||||
setUnion(Title, s);
|
setUnion(Title, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TagUnion::setAlbumArtist(const String &s)
|
||||||
|
{
|
||||||
|
setUnion(AlbumArtist, s);
|
||||||
|
}
|
||||||
|
|
||||||
void TagUnion::setArtist(const String &s)
|
void TagUnion::setArtist(const String &s)
|
||||||
{
|
{
|
||||||
setUnion(Artist, s);
|
setUnion(Artist, s);
|
||||||
|
|
|
@ -60,6 +60,7 @@ namespace TagLib {
|
||||||
void removeUnsupportedProperties(const StringList &unsupported);
|
void removeUnsupportedProperties(const StringList &unsupported);
|
||||||
|
|
||||||
virtual String title() const;
|
virtual String title() const;
|
||||||
|
virtual String albumartist() const;
|
||||||
virtual String artist() const;
|
virtual String artist() const;
|
||||||
virtual String album() const;
|
virtual String album() const;
|
||||||
virtual String comment() const;
|
virtual String comment() const;
|
||||||
|
@ -72,6 +73,7 @@ namespace TagLib {
|
||||||
virtual float rgTrackPeak() const;
|
virtual float rgTrackPeak() const;
|
||||||
|
|
||||||
virtual void setTitle(const String &s);
|
virtual void setTitle(const String &s);
|
||||||
|
virtual void setAlbumArtist(const String &s);
|
||||||
virtual void setArtist(const String &s);
|
virtual void setArtist(const String &s);
|
||||||
virtual void setAlbum(const String &s);
|
virtual void setAlbum(const String &s);
|
||||||
virtual void setComment(const String &s);
|
virtual void setComment(const String &s);
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
NSURL *URL;
|
NSURL *URL;
|
||||||
|
|
||||||
NSString *artist;
|
NSString *artist;
|
||||||
|
NSString *albumartist;
|
||||||
NSString *album;
|
NSString *album;
|
||||||
NSString *title;
|
NSString *title;
|
||||||
NSString *genre;
|
NSString *genre;
|
||||||
|
@ -50,6 +51,8 @@
|
||||||
BOOL Unsigned;
|
BOOL Unsigned;
|
||||||
float sampleRate;
|
float sampleRate;
|
||||||
|
|
||||||
|
NSString *codec;
|
||||||
|
|
||||||
NSString *endian;
|
NSString *endian;
|
||||||
|
|
||||||
BOOL seekable;
|
BOOL seekable;
|
||||||
|
@ -97,6 +100,7 @@
|
||||||
@property(retain) NSURL *URL;
|
@property(retain) NSURL *URL;
|
||||||
|
|
||||||
@property(retain) NSString *artist;
|
@property(retain) NSString *artist;
|
||||||
|
@property(retain) NSString *albumartist;
|
||||||
@property(retain) NSString *album;
|
@property(retain) NSString *album;
|
||||||
@property(nonatomic, retain) NSString *title;
|
@property(nonatomic, retain) NSString *title;
|
||||||
@property(retain) NSString *genre;
|
@property(retain) NSString *genre;
|
||||||
|
@ -114,6 +118,8 @@
|
||||||
@property BOOL Unsigned;
|
@property BOOL Unsigned;
|
||||||
@property float sampleRate;
|
@property float sampleRate;
|
||||||
|
|
||||||
|
@property(retain) NSString *codec;
|
||||||
|
|
||||||
@property float replayGainAlbumGain;
|
@property float replayGainAlbumGain;
|
||||||
@property float replayGainAlbumPeak;
|
@property float replayGainAlbumPeak;
|
||||||
@property float replayGainTrackGain;
|
@property float replayGainTrackGain;
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
@synthesize URL;
|
@synthesize URL;
|
||||||
|
|
||||||
@synthesize artist;
|
@synthesize artist;
|
||||||
|
@synthesize albumartist;
|
||||||
@synthesize album;
|
@synthesize album;
|
||||||
@synthesize genre;
|
@synthesize genre;
|
||||||
@synthesize year;
|
@synthesize year;
|
||||||
|
@ -41,6 +42,8 @@
|
||||||
@synthesize Unsigned;
|
@synthesize Unsigned;
|
||||||
@synthesize sampleRate;
|
@synthesize sampleRate;
|
||||||
|
|
||||||
|
@synthesize codec;
|
||||||
|
|
||||||
@synthesize replayGainAlbumGain;
|
@synthesize replayGainAlbumGain;
|
||||||
@synthesize replayGainAlbumPeak;
|
@synthesize replayGainAlbumPeak;
|
||||||
@synthesize replayGainTrackGain;
|
@synthesize replayGainTrackGain;
|
||||||
|
@ -89,7 +92,7 @@
|
||||||
|
|
||||||
+ (NSSet *)keyPathsForValuesAffectingSpam
|
+ (NSSet *)keyPathsForValuesAffectingSpam
|
||||||
{
|
{
|
||||||
return [NSSet setWithObjects:@"artist", @"title", @"album", @"track", @"totalFrames", @"currentPosition", @"bitrate", nil];
|
return [NSSet setWithObjects:@"albumartist", @"artist", @"title", @"album", @"track", @"totalFrames", @"currentPosition", @"bitrate", nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (NSSet *)keyPathsForValuesAffectingPositionText
|
+ (NSSet *)keyPathsForValuesAffectingPositionText
|
||||||
|
@ -131,6 +134,7 @@
|
||||||
self.URL = nil;
|
self.URL = nil;
|
||||||
|
|
||||||
self.artist = nil;
|
self.artist = nil;
|
||||||
|
self.albumartist = nil;
|
||||||
self.album = nil;
|
self.album = nil;
|
||||||
self.title = nil;
|
self.title = nil;
|
||||||
self.genre = nil;
|
self.genre = nil;
|
||||||
|
@ -139,6 +143,7 @@
|
||||||
self.albumArtInternal = nil;
|
self.albumArtInternal = nil;
|
||||||
|
|
||||||
self.endian = nil;
|
self.endian = nil;
|
||||||
|
self.codec = nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the URL if the title is blank
|
// Get the URL if the title is blank
|
||||||
|
@ -167,12 +172,14 @@
|
||||||
{
|
{
|
||||||
BOOL hasBitrate = (self.bitrate != 0);
|
BOOL hasBitrate = (self.bitrate != 0);
|
||||||
BOOL hasArtist = (self.artist != nil) && (![self.artist isEqualToString:@""]);
|
BOOL hasArtist = (self.artist != nil) && (![self.artist isEqualToString:@""]);
|
||||||
|
BOOL hasAlbumArtist = (self.albumartist != nil) && (![self.albumartist isEqualToString:@""]);
|
||||||
BOOL hasAlbum = (self.album != nil) && (![self.album isEqualToString:@""]);
|
BOOL hasAlbum = (self.album != nil) && (![self.album isEqualToString:@""]);
|
||||||
BOOL hasTrack = (self.track != 0);
|
BOOL hasTrack = (self.track != 0);
|
||||||
BOOL hasLength = (self.totalFrames != 0);
|
BOOL hasLength = (self.totalFrames != 0);
|
||||||
BOOL hasCurrentPosition = (self.currentPosition != 0) && (self.current);
|
BOOL hasCurrentPosition = (self.currentPosition != 0) && (self.current);
|
||||||
BOOL hasExtension = NO;
|
BOOL hasExtension = NO;
|
||||||
BOOL hasTitle = (title != nil) && (![title isEqualToString:@""]);
|
BOOL hasTitle = (title != nil) && (![title isEqualToString:@""]);
|
||||||
|
BOOL hasCodec = (self.codec != nil) && (![self.codec isEqualToString:@""]);
|
||||||
|
|
||||||
NSMutableString * filename = [NSMutableString stringWithString:[self filename]];
|
NSMutableString * filename = [NSMutableString stringWithString:[self filename]];
|
||||||
NSRange dotPosition = [filename rangeOfString:@"." options:NSBackwardsSearch];
|
NSRange dotPosition = [filename rangeOfString:@"." options:NSBackwardsSearch];
|
||||||
|
@ -192,7 +199,12 @@
|
||||||
|
|
||||||
if (hasExtension) {
|
if (hasExtension) {
|
||||||
[elements addObject:@"["];
|
[elements addObject:@"["];
|
||||||
[elements addObject:[extension uppercaseString]];
|
if (hasCodec) {
|
||||||
|
[elements addObject:self.codec];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[elements addObject:[extension uppercaseString]];
|
||||||
|
}
|
||||||
if (hasBitrate) {
|
if (hasBitrate) {
|
||||||
[elements addObject:@"@"];
|
[elements addObject:@"@"];
|
||||||
[elements addObject:[NSString stringWithFormat:@"%u", self.bitrate]];
|
[elements addObject:[NSString stringWithFormat:@"%u", self.bitrate]];
|
||||||
|
@ -202,7 +214,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasArtist) {
|
if (hasArtist) {
|
||||||
[elements addObject:self.artist];
|
if (hasAlbumArtist) {
|
||||||
|
[elements addObject:self.albumartist];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
[elements addObject:self.artist];
|
||||||
|
}
|
||||||
[elements addObject:@" - "];
|
[elements addObject:@" - "];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,6 +240,11 @@
|
||||||
[elements addObject:filename];
|
[elements addObject:filename];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hasAlbumArtist && hasArtist) {
|
||||||
|
[elements addObject:@" // "];
|
||||||
|
[elements addObject:self.artist];
|
||||||
|
}
|
||||||
|
|
||||||
if (hasCurrentPosition || hasLength) {
|
if (hasCurrentPosition || hasLength) {
|
||||||
SecondsFormatter *secondsFormatter = [[SecondsFormatter alloc] init];
|
SecondsFormatter *secondsFormatter = [[SecondsFormatter alloc] init];
|
||||||
[elements addObject:@" ("];
|
[elements addObject:@" ("];
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
[NSNumber numberWithBool:NO], @"floatingPoint",
|
[NSNumber numberWithBool:NO], @"floatingPoint",
|
||||||
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
|
[NSString stringWithUTF8String:m_player->gettype().c_str()], @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -479,6 +479,7 @@ int lockmgr_callback(void ** mutex, enum AVLockOp op)
|
||||||
[NSNumber numberWithDouble:totalFrames], @"totalFrames",
|
[NSNumber numberWithDouble:totalFrames], @"totalFrames",
|
||||||
[NSNumber numberWithInt:bitrate], @"bitrate",
|
[NSNumber numberWithInt:bitrate], @"bitrate",
|
||||||
[NSNumber numberWithBool:seekable], @"seekable",
|
[NSNumber numberWithBool:seekable], @"seekable",
|
||||||
|
[NSString stringWithUTF8String:avcodec_get_name(codecCtx->codec_id)], @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -317,6 +317,7 @@ void ErrorCallback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorS
|
||||||
[NSNumber numberWithFloat:frequency],@"sampleRate",
|
[NSNumber numberWithFloat:frequency],@"sampleRate",
|
||||||
[NSNumber numberWithDouble:totalFrames],@"totalFrames",
|
[NSNumber numberWithDouble:totalFrames],@"totalFrames",
|
||||||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||||
|
@"FLAC",@"codec",
|
||||||
@"big",@"endian",
|
@"big",@"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ extern gme_err_t readCallback( void* data, void* out, long count );
|
||||||
id<CogSource> source;
|
id<CogSource> source;
|
||||||
long length;
|
long length;
|
||||||
long fade;
|
long fade;
|
||||||
|
NSString* codec;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setSource:(id<CogSource>)s;
|
- (void)setSource:(id<CogSource>)s;
|
||||||
|
|
|
@ -261,6 +261,10 @@ static int psf_info_meta(void * context, const char * name, const char * value)
|
||||||
{
|
{
|
||||||
taglc = @"year";
|
taglc = @"year";
|
||||||
}
|
}
|
||||||
|
else if ([taglc isEqualToString:@"album artist"])
|
||||||
|
{
|
||||||
|
taglc = @"albumartist";
|
||||||
|
}
|
||||||
|
|
||||||
if ([taglc hasPrefix:@"replaygain_"])
|
if ([taglc hasPrefix:@"replaygain_"])
|
||||||
{
|
{
|
||||||
|
@ -296,6 +300,7 @@ static int psf_info_meta(void * context, const char * name, const char * value)
|
||||||
state->utf8 = true;
|
state->utf8 = true;
|
||||||
}
|
}
|
||||||
else if ([taglc isEqualToString:@"title"] ||
|
else if ([taglc isEqualToString:@"title"] ||
|
||||||
|
[taglc isEqualToString:@"albumartist"] ||
|
||||||
[taglc isEqualToString:@"artist"] ||
|
[taglc isEqualToString:@"artist"] ||
|
||||||
[taglc isEqualToString:@"album"] ||
|
[taglc isEqualToString:@"album"] ||
|
||||||
[taglc isEqualToString:@"year"] ||
|
[taglc isEqualToString:@"year"] ||
|
||||||
|
@ -1686,6 +1691,19 @@ static int usf_info(void * context, const char * name, const char * value)
|
||||||
|
|
||||||
- (NSDictionary *)properties
|
- (NSDictionary *)properties
|
||||||
{
|
{
|
||||||
|
NSString* codec = nil;
|
||||||
|
switch (type) {
|
||||||
|
case 1: codec = @"PSF"; break;
|
||||||
|
case 2: codec = @"PSF2"; break;
|
||||||
|
case 0x11: codec = @"SSF"; break;
|
||||||
|
case 0x12: codec = @"DSF"; break;
|
||||||
|
case 0x21: codec = @"USF"; break;
|
||||||
|
case 0x22: codec = @"GSF"; break;
|
||||||
|
case 0x24: codec = @"2SF"; break;
|
||||||
|
case 0x25: codec = @"NCSF"; break;
|
||||||
|
case 0x41: codec = @"QSF"; break;
|
||||||
|
}
|
||||||
|
|
||||||
return [NSDictionary dictionaryWithObjectsAndKeys:
|
return [NSDictionary dictionaryWithObjectsAndKeys:
|
||||||
[NSNumber numberWithInt:2], @"channels",
|
[NSNumber numberWithInt:2], @"channels",
|
||||||
[NSNumber numberWithInt:16], @"bitsPerSample",
|
[NSNumber numberWithInt:16], @"bitsPerSample",
|
||||||
|
@ -1698,6 +1716,7 @@ static int usf_info(void * context, const char * name, const char * value)
|
||||||
[NSNumber numberWithFloat:replayGainTrackGain], @"replayGainTrackGain",
|
[NSNumber numberWithFloat:replayGainTrackGain], @"replayGainTrackGain",
|
||||||
[NSNumber numberWithFloat:replayGainTrackPeak], @"replayGainTrackPeak",
|
[NSNumber numberWithFloat:replayGainTrackPeak], @"replayGainTrackPeak",
|
||||||
[NSNumber numberWithFloat:volume], @"volume",
|
[NSNumber numberWithFloat:volume], @"volume",
|
||||||
|
codec, @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,6 +114,7 @@ static OSType getOSType(const char * in_)
|
||||||
[NSNumber numberWithBool:YES], @"floatingPoint",
|
[NSNumber numberWithBool:YES], @"floatingPoint",
|
||||||
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
|
@"MIDI", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -211,6 +211,7 @@ mpc_bool_t CanSeekProc(mpc_reader *p_reader)
|
||||||
[NSNumber numberWithBool:YES], @"floatingPoint",
|
[NSNumber numberWithBool:YES], @"floatingPoint",
|
||||||
[NSNumber numberWithInt:2], @"channels",
|
[NSNumber numberWithInt:2], @"channels",
|
||||||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||||
|
@"Musepack", @"codec",
|
||||||
@"host",@"endian",
|
@"host",@"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,6 +144,7 @@ opus_int64 sourceTell(void *_stream)
|
||||||
[NSNumber numberWithDouble:totalFrames], @"totalFrames",
|
[NSNumber numberWithDouble:totalFrames], @"totalFrames",
|
||||||
[NSNumber numberWithInt:bitrate], @"bitrate",
|
[NSNumber numberWithInt:bitrate], @"bitrate",
|
||||||
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
||||||
|
@"Opus", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,6 +93,7 @@
|
||||||
[NSNumber numberWithFloat:frequency],@"sampleRate",
|
[NSNumber numberWithFloat:frequency],@"sampleRate",
|
||||||
[NSNumber numberWithDouble:totalFrames],@"totalFrames",
|
[NSNumber numberWithDouble:totalFrames],@"totalFrames",
|
||||||
[NSNumber numberWithBool:seekable ],@"seekable",
|
[NSNumber numberWithBool:seekable ],@"seekable",
|
||||||
|
@"Shorten",@"codec",
|
||||||
@"little",@"endian",
|
@"little",@"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,6 +137,7 @@ BOOL probe_length( Song * synSong, unsigned long * intro_length, unsigned long *
|
||||||
[NSNumber numberWithBool:NO], @"floatingPoint",
|
[NSNumber numberWithBool:NO], @"floatingPoint",
|
||||||
[NSNumber numberWithInt:2], @"channels",
|
[NSNumber numberWithInt:2], @"channels",
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
|
@"Syntrax", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,11 +71,12 @@
|
||||||
|
|
||||||
if (tag)
|
if (tag)
|
||||||
{
|
{
|
||||||
TagLib::String artist, title, album, genre, comment;
|
TagLib::String artist, albumartist, title, album, genre, comment;
|
||||||
int year, track;
|
int year, track;
|
||||||
float rgAlbumGain, rgAlbumPeak, rgTrackGain, rgTrackPeak;
|
float rgAlbumGain, rgAlbumPeak, rgTrackGain, rgTrackPeak;
|
||||||
|
|
||||||
artist = tag->artist();
|
artist = tag->artist();
|
||||||
|
albumartist = tag->albumartist();
|
||||||
title = tag->title();;
|
title = tag->title();;
|
||||||
album = tag->album();
|
album = tag->album();
|
||||||
genre = tag->genre();
|
genre = tag->genre();
|
||||||
|
@ -98,6 +99,9 @@
|
||||||
|
|
||||||
if (!artist.isEmpty())
|
if (!artist.isEmpty())
|
||||||
[dict setObject:[NSString stringWithUTF8String:artist.toCString(true)] forKey:@"artist"];
|
[dict setObject:[NSString stringWithUTF8String:artist.toCString(true)] forKey:@"artist"];
|
||||||
|
|
||||||
|
if (!albumartist.isEmpty())
|
||||||
|
[dict setObject:[NSString stringWithUTF8String:albumartist.toCString(true)] forKey:@"albumartist"];
|
||||||
|
|
||||||
if (!album.isEmpty())
|
if (!album.isEmpty())
|
||||||
[dict setObject:[NSString stringWithUTF8String:album.toCString(true)] forKey:@"album"];
|
[dict setObject:[NSString stringWithUTF8String:album.toCString(true)] forKey:@"album"];
|
||||||
|
|
|
@ -138,6 +138,7 @@ long sourceTell(void *datasource)
|
||||||
[NSNumber numberWithDouble:totalFrames], @"totalFrames",
|
[NSNumber numberWithDouble:totalFrames], @"totalFrames",
|
||||||
[NSNumber numberWithInt:bitrate], @"bitrate",
|
[NSNumber numberWithInt:bitrate], @"bitrate",
|
||||||
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
||||||
|
@"Vorbis", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -290,6 +290,7 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount)
|
||||||
[NSNumber numberWithBool:floatingPoint],@"floatingPoint",
|
[NSNumber numberWithBool:floatingPoint],@"floatingPoint",
|
||||||
[NSNumber numberWithDouble:totalFrames],@"totalFrames",
|
[NSNumber numberWithDouble:totalFrames],@"totalFrames",
|
||||||
[NSNumber numberWithBool:[[wv source] seekable]], @"seekable",
|
[NSNumber numberWithBool:[[wv source] seekable]], @"seekable",
|
||||||
|
@"Wavpack",@"codec",
|
||||||
@"little",@"endian",
|
@"little",@"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,21 @@
|
||||||
|
|
||||||
#import "PlaylistController.h"
|
#import "PlaylistController.h"
|
||||||
|
|
||||||
|
static NSString* get_description_tag(const char* description, const char *tag, char delimiter) {
|
||||||
|
// extract a "tag" from the description string
|
||||||
|
const char* pos = strstr(description, tag);
|
||||||
|
const char* eos = NULL;
|
||||||
|
if (pos != NULL) {
|
||||||
|
pos += strlen(tag);
|
||||||
|
eos = strchr(pos, delimiter);
|
||||||
|
if (eos == NULL) eos = pos + strlen(pos);
|
||||||
|
NSMutableData* data = [NSData dataWithBytes:pos length:(eos - pos + 1)];
|
||||||
|
((char *)[data mutableBytes])[eos - pos] = '\0';
|
||||||
|
return [NSString stringWithUTF8String:[data bytes]];
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
@implementation VGMInfoCache
|
@implementation VGMInfoCache
|
||||||
|
|
||||||
+(id)sharedCache {
|
+(id)sharedCache {
|
||||||
|
@ -48,6 +63,9 @@
|
||||||
long totalFrames = vgmstream_get_samples(stream);
|
long totalFrames = vgmstream_get_samples(stream);
|
||||||
|
|
||||||
int bitrate = get_vgmstream_average_bitrate(stream);
|
int bitrate = get_vgmstream_average_bitrate(stream);
|
||||||
|
|
||||||
|
char description[1024];
|
||||||
|
describe_vgmstream(stream, description, 1024);
|
||||||
|
|
||||||
NSString * path = [url absoluteString];
|
NSString * path = [url absoluteString];
|
||||||
NSRange fragmentRange = [path rangeOfString:@"#" options:NSBackwardsSearch];
|
NSRange fragmentRange = [path rangeOfString:@"#" options:NSBackwardsSearch];
|
||||||
|
@ -67,12 +85,16 @@
|
||||||
NSNumber *year = [NSNumber numberWithInt:0];
|
NSNumber *year = [NSNumber numberWithInt:0];
|
||||||
NSNumber *track = [NSNumber numberWithInt:0];
|
NSNumber *track = [NSNumber numberWithInt:0];
|
||||||
NSString *title = @"";
|
NSString *title = @"";
|
||||||
|
|
||||||
|
NSString *codec;
|
||||||
|
|
||||||
NSNumber *rgTrackGain = [NSNumber numberWithInt:0];
|
NSNumber *rgTrackGain = [NSNumber numberWithInt:0];
|
||||||
NSNumber *rgTrackPeak = [NSNumber numberWithInt:0];
|
NSNumber *rgTrackPeak = [NSNumber numberWithInt:0];
|
||||||
NSNumber *rgAlbumGain = [NSNumber numberWithInt:0];
|
NSNumber *rgAlbumGain = [NSNumber numberWithInt:0];
|
||||||
NSNumber *rgAlbumPeak = [NSNumber numberWithInt:0];
|
NSNumber *rgAlbumPeak = [NSNumber numberWithInt:0];
|
||||||
|
|
||||||
|
codec = get_description_tag(description, "encoding: ", 0);
|
||||||
|
|
||||||
STREAMFILE *tagFile = cogsf_create_from_url(tagurl);
|
STREAMFILE *tagFile = cogsf_create_from_url(tagurl);
|
||||||
if (tagFile) {
|
if (tagFile) {
|
||||||
VGMSTREAM_TAGS *tags;
|
VGMSTREAM_TAGS *tags;
|
||||||
|
@ -134,6 +156,7 @@
|
||||||
rgAlbumPeak, @"replayGainAlbumPeak",
|
rgAlbumPeak, @"replayGainAlbumPeak",
|
||||||
rgTrackGain, @"replayGainTrackGain",
|
rgTrackGain, @"replayGainTrackGain",
|
||||||
rgTrackPeak, @"replayGainTrackPeak",
|
rgTrackPeak, @"replayGainTrackPeak",
|
||||||
|
codec, @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
|
|
||||||
|
|
|
@ -73,3 +73,9 @@
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "N/A"; ObjectID = "87"; */
|
/* Class = "NSTextFieldCell"; title = "N/A"; ObjectID = "87"; */
|
||||||
"87.title" = "N/A";
|
"87.title" = "N/A";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Album Artist:"; ObjectID = "vB6-9J-5qg"; */
|
||||||
|
"vB6-9J-5qg.title" = "Album Artist:";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Codec:"; ObjectID = "QPg-Mb-Urn"; */
|
||||||
|
"QPg-Mb-Urn.title" = "Codec:";
|
||||||
|
|
|
@ -625,3 +625,9 @@
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Properties"; ObjectID = "Eds-my-DQr"; */
|
/* Class = "NSMenuItem"; title = "Properties"; ObjectID = "Eds-my-DQr"; */
|
||||||
"Eds-my-DQr.title" = "Properties";
|
"Eds-my-DQr.title" = "Properties";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; title = "Album Artist"; ObjectID = "yGV-gP-Wl6"; */
|
||||||
|
"yGV-gP-Wl6.title" = "Album Artist";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; title = "Codec"; ObjectID = "3A3-9o-Gh9"; */
|
||||||
|
"3A3-9o-Gh9.title" = "Codec";
|
||||||
|
|
|
@ -73,3 +73,9 @@
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "N/A"; ObjectID = "87"; */
|
/* Class = "NSTextFieldCell"; title = "N/A"; ObjectID = "87"; */
|
||||||
"87.title" = "N/A";
|
"87.title" = "N/A";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Album Artist:"; ObjectID = "vB6-9J-5qg"; */
|
||||||
|
"vB6-9J-5qg.title" = "Album Artist:";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Codec:"; ObjectID = "QPg-Mb-Urn"; */
|
||||||
|
"QPg-Mb-Urn.title" = "Codec:";
|
||||||
|
|
|
@ -622,3 +622,9 @@
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Properties"; ObjectID = "Eds-my-DQr"; */
|
/* Class = "NSMenuItem"; title = "Properties"; ObjectID = "Eds-my-DQr"; */
|
||||||
"Eds-my-DQr.title" = "Properties";
|
"Eds-my-DQr.title" = "Properties";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; title = "Album Artist"; ObjectID = "yGV-gP-Wl6"; */
|
||||||
|
"yGV-gP-Wl6.title" = "Album Artist";
|
||||||
|
|
||||||
|
/* Class = "NSTableColumn"; title = "Codec"; ObjectID = "3A3-9o-Gh9"; */
|
||||||
|
"3A3-9o-Gh9.title" = "Codec";
|
||||||
|
|
Loading…
Reference in New Issue