Metadata: Now supports storing cuesheet tags and encoding quality status properties
parent
2165d37144
commit
0c4d5002f6
|
@ -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="494"/>
|
<rect key="contentRect" x="700" y="80" width="300" height="516"/>
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
<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="494"/>
|
<rect key="frame" x="0.0" y="0.0" width="300" height="516"/>
|
||||||
<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="60" y="438" width="45" height="14"/>
|
<rect key="frame" x="60" y="460" 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" alignment="right" title="Artist:" id="10">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="62" y="416" width="43" height="14"/>
|
<rect key="frame" x="62" y="438" 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" alignment="right" title="Album:" id="12">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="67" y="372" width="38" height="14"/>
|
<rect key="frame" x="67" y="394" 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" alignment="right" title="Track:" id="14">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="60" y="350" width="45" height="14"/>
|
<rect key="frame" x="60" y="372" 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" alignment="right" title="Length:" id="16">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="73" y="328" width="32" height="14"/>
|
<rect key="frame" x="73" y="350" 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" alignment="right" title="Year:" id="18">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="65" y="306" width="40" height="14"/>
|
<rect key="frame" x="65" y="328" 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" alignment="right" title="Genre:" id="20">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="32" y="262" width="73" height="14"/>
|
<rect key="frame" x="32" y="284" 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" alignment="right" title="Sample Rate:" id="22">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="48" y="240" width="57" height="14"/>
|
<rect key="frame" x="48" y="262" 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" alignment="right" title="Channels:" id="28">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="63" y="218" width="42" height="14"/>
|
<rect key="frame" x="63" y="240" 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" alignment="right" title="Bitrate:" id="32">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="15" y="196" width="90" height="14"/>
|
<rect key="frame" x="15" y="218" width="90" 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" alignment="right" title="Bits Per Sample:" id="31">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="73" y="394" width="32" height="14"/>
|
<rect key="frame" x="73" y="416" 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" alignment="right" title="Title:" id="24">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 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="438" width="170" height="14"/>
|
<rect key="frame" x="113" y="460" 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="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="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="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="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="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="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"/>
|
||||||
|
@ -171,7 +171,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="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="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"/>
|
||||||
|
@ -183,7 +183,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="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="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"/>
|
||||||
|
@ -195,7 +195,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="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="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"/>
|
||||||
|
@ -207,7 +207,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="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="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"/>
|
||||||
|
@ -219,7 +219,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="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="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"/>
|
||||||
|
@ -231,7 +231,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="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="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"/>
|
||||||
|
@ -243,7 +243,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="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="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"/>
|
||||||
|
@ -255,7 +255,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QPg-Mb-Urn">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QPg-Mb-Urn">
|
||||||
<rect key="frame" x="60" y="174" width="45" height="14"/>
|
<rect key="frame" x="60" y="196" 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" alignment="right" title="Codec:" id="cbq-TT-CZX">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Codec:" id="cbq-TT-CZX">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -264,7 +264,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ijS-y2-eCZ" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ijS-y2-eCZ" 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="Yby-OU-cqP">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="Yby-OU-cqP">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -275,8 +275,29 @@
|
||||||
<binding destination="-2" name="value" keyPath="valueToDisplay.codec" id="Tle-Vx-BN5"/>
|
<binding destination="-2" name="value" keyPath="valueToDisplay.codec" id="Tle-Vx-BN5"/>
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bti-s6-SIU">
|
||||||
|
<rect key="frame" x="38" y="174" width="67" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Encoding:" id="8e7-lp-K5l">
|
||||||
|
<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="L4f-rE-CN3" 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="v14-AG-B9D">
|
||||||
|
<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.encoding" id="BWi-9r-yOR"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="84">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="84">
|
||||||
<rect key="frame" x="49" y="284" width="56" height="14"/>
|
<rect key="frame" x="49" y="306" 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" alignment="right" title="Filename:" id="85">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Filename:" id="85">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -285,7 +306,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="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="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"/>
|
||||||
|
@ -311,7 +332,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</imageView>
|
</imageView>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vB6-9J-5qg">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vB6-9J-5qg">
|
||||||
<rect key="frame" x="18" y="460" width="87" height="14"/>
|
<rect key="frame" x="18" y="482" width="87" 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" alignment="right" title="Album Artist:" id="LFJ-QQ-gGr">
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Album Artist:" id="LFJ-QQ-gGr">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
@ -320,7 +341,7 @@
|
||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cj0-Tw-xpq" customClass="ToolTipTextField">
|
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cj0-Tw-xpq" customClass="ToolTipTextField">
|
||||||
<rect key="frame" x="113" y="460" width="170" height="14"/>
|
<rect key="frame" x="113" y="482" 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="B8w-o8-ZBw">
|
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="B8w-o8-ZBw">
|
||||||
<font key="font" metaFont="smallSystem"/>
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
|
|
@ -59,6 +59,8 @@
|
||||||
NSString *codec;
|
NSString *codec;
|
||||||
|
|
||||||
NSString *endian;
|
NSString *endian;
|
||||||
|
|
||||||
|
NSString *encoding;
|
||||||
|
|
||||||
BOOL seekable;
|
BOOL seekable;
|
||||||
|
|
||||||
|
@ -149,6 +151,8 @@
|
||||||
|
|
||||||
@property(retain) NSString *endian;
|
@property(retain) NSString *endian;
|
||||||
|
|
||||||
|
@property(retain) NSString *encoding;
|
||||||
|
|
||||||
@property BOOL seekable;
|
@property BOOL seekable;
|
||||||
|
|
||||||
@property BOOL metadataLoaded;
|
@property BOOL metadataLoaded;
|
||||||
|
|
|
@ -59,6 +59,8 @@
|
||||||
|
|
||||||
@synthesize endian;
|
@synthesize endian;
|
||||||
|
|
||||||
|
@synthesize encoding;
|
||||||
|
|
||||||
@synthesize seekable;
|
@synthesize seekable;
|
||||||
|
|
||||||
@synthesize metadataLoaded;
|
@synthesize metadataLoaded;
|
||||||
|
@ -491,6 +493,8 @@
|
||||||
pe->codec = [codec copyWithZone:zone];
|
pe->codec = [codec copyWithZone:zone];
|
||||||
|
|
||||||
pe->endian = [endian copyWithZone:zone];
|
pe->endian = [endian copyWithZone:zone];
|
||||||
|
|
||||||
|
pe->encoding = [encoding copyWithZone:zone];
|
||||||
|
|
||||||
pe->seekable = seekable;
|
pe->seekable = seekable;
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,7 @@ static CAdPlugDatabase * g_database = NULL;
|
||||||
[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",
|
[NSString stringWithUTF8String:m_player->gettype().c_str()], @"codec",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
|
@ -349,6 +349,7 @@ static SInt64 getSizeProc(void* clientData) {
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
codec, @"codec",
|
codec, @"codec",
|
||||||
floatingPoint ? @"host" : @"big", @"endian",
|
floatingPoint ? @"host" : @"big", @"endian",
|
||||||
|
floatingPoint ? @"lossy" : @"lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -580,6 +580,7 @@ int lockmgr_callback(void ** mutex, enum AVLockOp op)
|
||||||
[NSNumber numberWithBool:seekable], @"seekable",
|
[NSNumber numberWithBool:seekable], @"seekable",
|
||||||
[NSString stringWithUTF8String:avcodec_get_name(codecCtx->codec_id)], @"codec",
|
[NSString stringWithUTF8String:avcodec_get_name(codecCtx->codec_id)], @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
floatingPoint ? @"lossy" : @"lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -348,6 +348,7 @@ void ErrorCallback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorS
|
||||||
[NSNumber numberWithInt:fileSize ? (fileSize * 8 / ((totalFrames + (frequency / 2)) / frequency)) / 1000 : 0], @"bitrate",
|
[NSNumber numberWithInt:fileSize ? (fileSize * 8 / ((totalFrames + (frequency / 2)) / frequency)) / 1000 : 0], @"bitrate",
|
||||||
@"FLAC",@"codec",
|
@"FLAC",@"codec",
|
||||||
@"big",@"endian",
|
@"big",@"endian",
|
||||||
|
@"lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -160,6 +160,7 @@ gme_err_t readCallback( void* data, void* out, long count )
|
||||||
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
||||||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1727,6 +1727,7 @@ static int usf_info(void * context, const char * name, const char * value)
|
||||||
[NSNumber numberWithFloat:volume], @"volume",
|
[NSNumber numberWithFloat:volume], @"volume",
|
||||||
codec, @"codec",
|
codec, @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,7 @@ static void oneTimeInit(void)
|
||||||
[NSNumber numberWithInt:2], @"channels",
|
[NSNumber numberWithInt:2], @"channels",
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,7 @@ static OSType getOSType(const char * in_)
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
@"MIDI", @"codec",
|
@"MIDI", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -213,6 +213,7 @@ mpc_bool_t CanSeekProc(mpc_reader *p_reader)
|
||||||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||||
@"Musepack", @"codec",
|
@"Musepack", @"codec",
|
||||||
@"host",@"endian",
|
@"host",@"endian",
|
||||||
|
@"lossy", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,7 @@ static void g_push_archive_extensions(std::vector<std::string> & list)
|
||||||
[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",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,6 +103,7 @@ static void g_push_archive_extensions(std::vector<std::string> & list)
|
||||||
[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",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,7 @@ opus_int64 sourceTell(void *_stream)
|
||||||
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
||||||
@"Opus", @"codec",
|
@"Opus", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"lossy", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,7 @@
|
||||||
[NSNumber numberWithBool:seekable ],@"seekable",
|
[NSNumber numberWithBool:seekable ],@"seekable",
|
||||||
@"Shorten",@"codec",
|
@"Shorten",@"codec",
|
||||||
@"little",@"endian",
|
@"little",@"endian",
|
||||||
|
@"lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ enum { channels = 2 };
|
||||||
[NSNumber numberWithInt:channels], @"channels",
|
[NSNumber numberWithInt:channels], @"channels",
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,7 @@ long sourceTell(void *datasource)
|
||||||
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
||||||
@"Vorbis", @"codec",
|
@"Vorbis", @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"lossy", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
size_t inputBufferSize;
|
size_t inputBufferSize;
|
||||||
|
|
||||||
BOOL isDSD;
|
BOOL isDSD;
|
||||||
|
BOOL isLossy;
|
||||||
|
|
||||||
int bitsPerSample;
|
int bitsPerSample;
|
||||||
int channels;
|
int channels;
|
||||||
|
|
|
@ -187,6 +187,8 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount)
|
||||||
bitrate = (int)(WavpackGetAverageBitrate(wpc, TRUE)/1000.0);
|
bitrate = (int)(WavpackGetAverageBitrate(wpc, TRUE)/1000.0);
|
||||||
|
|
||||||
floatingPoint = MODE_FLOAT & WavpackGetMode(wpc) && 127 == WavpackGetFloatNormExp(wpc);
|
floatingPoint = MODE_FLOAT & WavpackGetMode(wpc) && 127 == WavpackGetFloatNormExp(wpc);
|
||||||
|
|
||||||
|
isLossy = !(WavpackGetMode(wpc) & MODE_LOSSLESS);
|
||||||
|
|
||||||
[self willChangeValueForKey:@"properties"];
|
[self willChangeValueForKey:@"properties"];
|
||||||
[self didChangeValueForKey:@"properties"];
|
[self didChangeValueForKey:@"properties"];
|
||||||
|
@ -313,6 +315,7 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount)
|
||||||
[NSNumber numberWithBool:[[wv source] seekable]], @"seekable",
|
[NSNumber numberWithBool:[[wv source] seekable]], @"seekable",
|
||||||
@"Wavpack",@"codec",
|
@"Wavpack",@"codec",
|
||||||
@"little",@"endian",
|
@"little",@"endian",
|
||||||
|
isLossy ? @"lossy" : @"lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -204,6 +204,7 @@ const int masterVol = 0x10000; // Fixed point 16.16
|
||||||
[NSNumber numberWithInt:numChannels], @"channels", //output from gme_play is in stereo
|
[NSNumber numberWithInt:numChannels], @"channels", //output from gme_play is in stereo
|
||||||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -209,6 +209,7 @@ static void sidTuneLoader(const char* fileName, std::vector<uint8_t>& bufferRef)
|
||||||
[NSNumber numberWithInt:n_channels], @"channels", //output from gme_play is in stereo
|
[NSNumber numberWithInt:n_channels], @"channels", //output from gme_play is in stereo
|
||||||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"synthesized", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,6 +174,7 @@ static NSString* get_description_tag(const char* description, const char *tag, c
|
||||||
rgTrackPeak, @"replayGainTrackPeak",
|
rgTrackPeak, @"replayGainTrackPeak",
|
||||||
codec, @"codec",
|
codec, @"codec",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"lossy/lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
|
|
||||||
if ( [title isEqualToString:@""] ) {
|
if ( [title isEqualToString:@""] ) {
|
||||||
|
@ -315,6 +316,7 @@ static NSString* get_description_tag(const char* description, const char *tag, c
|
||||||
[NSNumber numberWithInt:channels], @"channels",
|
[NSNumber numberWithInt:channels], @"channels",
|
||||||
[NSNumber numberWithBool:YES], @"seekable",
|
[NSNumber numberWithBool:YES], @"seekable",
|
||||||
@"host", @"endian",
|
@"host", @"endian",
|
||||||
|
@"lossy/lossless", @"encoding",
|
||||||
nil];
|
nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
{
|
{
|
||||||
@private NSString *g_databasePath;
|
@private NSString *g_databasePath;
|
||||||
@private sqlite3 *g_database;
|
@private sqlite3 *g_database;
|
||||||
@private sqlite3_stmt *stmt[38];
|
@private sqlite3_stmt *stmt[39];
|
||||||
@private NSMutableArray *databaseMirror;
|
@private NSMutableArray *databaseMirror;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "SQLiteStore.h"
|
#import "SQLiteStore.h"
|
||||||
|
#import "Logging.h"
|
||||||
|
|
||||||
NSString * getDatabasePath(void)
|
NSString * getDatabasePath(void)
|
||||||
{
|
{
|
||||||
|
@ -16,6 +17,8 @@ NSString * getDatabasePath(void)
|
||||||
return [basePath stringByAppendingPathComponent:filename];
|
return [basePath stringByAppendingPathComponent:filename];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int64_t currentSchemaVersion = 1;
|
||||||
|
|
||||||
NSArray * createSchema(void)
|
NSArray * createSchema(void)
|
||||||
{
|
{
|
||||||
return @[
|
return @[
|
||||||
|
@ -40,6 +43,8 @@ NSArray * createSchema(void)
|
||||||
titleid INTEGER, \
|
titleid INTEGER, \
|
||||||
genreid INTEGER, \
|
genreid INTEGER, \
|
||||||
codecid INTEGER, \
|
codecid INTEGER, \
|
||||||
|
encodingid INTEGER, \
|
||||||
|
cuesheetid INTEGER, \
|
||||||
track INTEGER, \
|
track INTEGER, \
|
||||||
year INTEGER, \
|
year INTEGER, \
|
||||||
unsigned INTEGER, \
|
unsigned INTEGER, \
|
||||||
|
@ -73,7 +78,9 @@ NSArray * createSchema(void)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
stmt_select_string = 0,
|
stmt_user_version_get = 0,
|
||||||
|
|
||||||
|
stmt_select_string,
|
||||||
stmt_select_string_refcount,
|
stmt_select_string_refcount,
|
||||||
stmt_select_string_value,
|
stmt_select_string_value,
|
||||||
stmt_bump_string,
|
stmt_bump_string,
|
||||||
|
@ -119,6 +126,14 @@ enum
|
||||||
stmt_count,
|
stmt_count,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
user_version_get_out_version_number = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
const char * query_user_version_get = "PRAGMA user_version";
|
||||||
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
select_string_in_id = 1,
|
select_string_in_id = 1,
|
||||||
|
@ -264,6 +279,8 @@ enum
|
||||||
select_track_data_out_title_id,
|
select_track_data_out_title_id,
|
||||||
select_track_data_out_genre_id,
|
select_track_data_out_genre_id,
|
||||||
select_track_data_out_codec_id,
|
select_track_data_out_codec_id,
|
||||||
|
select_track_data_out_cuesheet_id,
|
||||||
|
select_track_data_out_encoding_id,
|
||||||
select_track_data_out_track,
|
select_track_data_out_track,
|
||||||
select_track_data_out_year,
|
select_track_data_out_year,
|
||||||
select_track_data_out_unsigned,
|
select_track_data_out_unsigned,
|
||||||
|
@ -283,7 +300,7 @@ enum
|
||||||
select_track_data_out_replaygaintrackpeak,
|
select_track_data_out_replaygaintrackpeak,
|
||||||
};
|
};
|
||||||
|
|
||||||
const char * query_select_track_data = "SELECT urlid, artid, albumid, albumartistid, artistid, titleid, genreid, codecid, track, year, unsigned, bitrate, samplerate, bitspersample, channels, endianid, floatingpoint, totalframes, metadataloaded, seekable, volume, replaygainalbumgain, replaygainalbumpeak, replaygaintrackgain, replaygaintrackpeak FROM knowntracks WHERE (trackid = ?) LIMIT 1";
|
const char * query_select_track_data = "SELECT urlid, artid, albumid, albumartistid, artistid, titleid, genreid, codecid, cuesheetid, encodingid, track, year, unsigned, bitrate, samplerate, bitspersample, channels, endianid, floatingpoint, totalframes, metadataloaded, seekable, volume, replaygainalbumgain, replaygainalbumpeak, replaygaintrackgain, replaygaintrackpeak FROM knowntracks WHERE (trackid = ?) LIMIT 1";
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -309,6 +326,8 @@ enum
|
||||||
add_track_in_title_id,
|
add_track_in_title_id,
|
||||||
add_track_in_genre_id,
|
add_track_in_genre_id,
|
||||||
add_track_in_codec_id,
|
add_track_in_codec_id,
|
||||||
|
add_track_in_cuesheet_id,
|
||||||
|
add_track_in_encoding_id,
|
||||||
add_track_in_track,
|
add_track_in_track,
|
||||||
add_track_in_year,
|
add_track_in_year,
|
||||||
add_track_in_unsigned,
|
add_track_in_unsigned,
|
||||||
|
@ -328,7 +347,7 @@ enum
|
||||||
add_track_in_replaygaintrackpeak,
|
add_track_in_replaygaintrackpeak,
|
||||||
};
|
};
|
||||||
|
|
||||||
const char * query_add_track = "INSERT INTO knowntracks (referencecount, urlid, artid, albumid, albumartistid, artistid, titleid, genreid, codecid, track, year, unsigned, bitrate, samplerate, bitspersample, channels, endianid, floatingpoint, totalframes, metadataloaded, seekable, volume, replaygainalbumgain, replaygainalbumpeak, replaygaintrackgain, replaygaintrackpeak) VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
const char * query_add_track = "INSERT INTO knowntracks (referencecount, urlid, artid, albumid, albumartistid, artistid, titleid, genreid, codecid, cuesheetid, encodingid, track, year, unsigned, bitrate, samplerate, bitspersample, channels, endianid, floatingpoint, totalframes, metadataloaded, seekable, volume, replaygainalbumgain, replaygainalbumpeak, replaygaintrackgain, replaygaintrackpeak) VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -347,6 +366,8 @@ enum
|
||||||
update_track_in_title_id,
|
update_track_in_title_id,
|
||||||
update_track_in_genre_id,
|
update_track_in_genre_id,
|
||||||
update_track_in_codec_id,
|
update_track_in_codec_id,
|
||||||
|
update_track_in_cuesheet_id,
|
||||||
|
update_track_in_encoding_id,
|
||||||
update_track_in_track,
|
update_track_in_track,
|
||||||
update_track_in_year,
|
update_track_in_year,
|
||||||
update_track_in_unsigned,
|
update_track_in_unsigned,
|
||||||
|
@ -367,7 +388,7 @@ enum
|
||||||
update_track_in_id
|
update_track_in_id
|
||||||
};
|
};
|
||||||
|
|
||||||
const char * query_update_track = "UPDATE knowntracks SET urlid = ?, artid = ?, albumid = ?, albumartistid = ?, artistid = ?, titleid = ?, genreid = ?, codecid = ?, track = ?, year = ?, unsigned = ?, bitrate = ?, samplerate = ?, bitspersample = ?, channels = ?, endianid = ?, floatingpoint = ?, totalframes = ?, metadataloaded = ?, seekable = ?, volume = ?, replaygainalbumgain = ?, replaygainalbumpeak = ?, replaygaintrackgain = ?, replaygaintrackpeak = ? WHERE trackid = ?";
|
const char * query_update_track = "UPDATE knowntracks SET urlid = ?, artid = ?, albumid = ?, albumartistid = ?, artistid = ?, titleid = ?, genreid = ?, codecid = ?, cuesheetid = ?, encodingid = ?, track = ?, year = ?, unsigned = ?, bitrate = ?, samplerate = ?, bitspersample = ?, channels = ?, endianid = ?, floatingpoint = ?, totalframes = ?, metadataloaded = ?, seekable = ?, volume = ?, replaygainalbumgain = ?, replaygainalbumpeak = ?, replaygaintrackgain = ?, replaygaintrackpeak = ? WHERE trackid = ?";
|
||||||
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -575,18 +596,62 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
|
|
||||||
if (sqlite3_open([g_databasePath UTF8String], &g_database) == SQLITE_OK)
|
if (sqlite3_open([g_databasePath UTF8String], &g_database) == SQLITE_OK)
|
||||||
{
|
{
|
||||||
|
char * error;
|
||||||
NSArray * schemas = createSchema();
|
NSArray * schemas = createSchema();
|
||||||
|
|
||||||
for (NSString *schema in schemas)
|
for (NSString *schema in schemas)
|
||||||
{
|
{
|
||||||
char * error;
|
|
||||||
if (sqlite3_exec(g_database, [schema UTF8String], NULL, NULL, &error) != SQLITE_OK)
|
if (sqlite3_exec(g_database, [schema UTF8String], NULL, NULL, &error) != SQLITE_OK)
|
||||||
{
|
{
|
||||||
|
DLog(@"SQLite error: %s", error);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PREPARE(name) (sqlite3_prepare(g_database, query_##name, (int)strlen(query_##name), &stmt[stmt_##name], NULL))
|
#define PREPARE(name) (sqlite3_prepare_v2(g_database, query_##name, (int)strlen(query_##name), &stmt[stmt_##name], NULL))
|
||||||
|
|
||||||
|
if (PREPARE(user_version_get))
|
||||||
|
{
|
||||||
|
DLog(@"SQlite error: %s", error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlite3_stmt * st = stmt[stmt_user_version_get];
|
||||||
|
if (sqlite3_reset(st) ||
|
||||||
|
sqlite3_step(st) != SQLITE_ROW)
|
||||||
|
{
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t knownVersion = sqlite3_column_int64(st, user_version_get_out_version_number);
|
||||||
|
|
||||||
|
sqlite3_reset(st);
|
||||||
|
|
||||||
|
if (knownVersion < currentSchemaVersion)
|
||||||
|
{
|
||||||
|
switch (knownVersion)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
// Schema 0 to 1: Add cuesheet and encoding text fields to the knowntracks table
|
||||||
|
if (sqlite3_exec(g_database, "ALTER TABLE knowntracks ADD encodingid INTEGER; ALTER TABLE knowntracks ADD cuesheetid INTEGER", NULL, NULL, &error))
|
||||||
|
{
|
||||||
|
DLog(@"SQLite error: %s", error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSString * updateVersion = [NSString stringWithFormat:@"PRAGMA user_version = %lld", currentSchemaVersion];
|
||||||
|
|
||||||
|
if (sqlite3_exec(g_database, [updateVersion UTF8String], NULL, NULL, &error))
|
||||||
|
{
|
||||||
|
DLog(@"SQLite error: %s", error);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (PREPARE(select_string) ||
|
if (PREPARE(select_string) ||
|
||||||
PREPARE(select_string_refcount) ||
|
PREPARE(select_string_refcount) ||
|
||||||
|
@ -1031,6 +1096,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
int64_t titleId = [self addString:[track rawTitle]];
|
int64_t titleId = [self addString:[track rawTitle]];
|
||||||
int64_t genreId = [self addString:[track genre]];
|
int64_t genreId = [self addString:[track genre]];
|
||||||
int64_t codecId = [self addString:[track codec]];
|
int64_t codecId = [self addString:[track codec]];
|
||||||
|
int64_t cuesheetId = [self addString:[track cuesheet]];
|
||||||
|
int64_t encodingId = [self addString:[track encoding]];
|
||||||
int64_t trackNr = [[track track] intValue] | (((uint64_t)[[track disc] intValue]) << 32);
|
int64_t trackNr = [[track track] intValue] | (((uint64_t)[[track disc] intValue]) << 32);
|
||||||
int64_t year = [[track year] intValue];
|
int64_t year = [[track year] intValue];
|
||||||
int64_t unsignedFmt = [track Unsigned];
|
int64_t unsignedFmt = [track Unsigned];
|
||||||
|
@ -1066,6 +1133,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
sqlite3_bind_int64(st, add_track_in_title_id, titleId) ||
|
sqlite3_bind_int64(st, add_track_in_title_id, titleId) ||
|
||||||
sqlite3_bind_int64(st, add_track_in_genre_id, genreId) ||
|
sqlite3_bind_int64(st, add_track_in_genre_id, genreId) ||
|
||||||
sqlite3_bind_int64(st, add_track_in_codec_id, codecId) ||
|
sqlite3_bind_int64(st, add_track_in_codec_id, codecId) ||
|
||||||
|
sqlite3_bind_int64(st, add_track_in_cuesheet_id, cuesheetId) ||
|
||||||
|
sqlite3_bind_int64(st, add_track_in_encoding_id, encodingId) ||
|
||||||
sqlite3_bind_int64(st, add_track_in_track, trackNr) ||
|
sqlite3_bind_int64(st, add_track_in_track, trackNr) ||
|
||||||
sqlite3_bind_int64(st, add_track_in_year, year) ||
|
sqlite3_bind_int64(st, add_track_in_year, year) ||
|
||||||
sqlite3_bind_int64(st, add_track_in_unsigned, unsignedFmt) ||
|
sqlite3_bind_int64(st, add_track_in_unsigned, unsignedFmt) ||
|
||||||
|
@ -1094,6 +1163,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
[self removeString:titleId];
|
[self removeString:titleId];
|
||||||
[self removeString:genreId];
|
[self removeString:genreId];
|
||||||
[self removeString:codecId];
|
[self removeString:codecId];
|
||||||
|
[self removeString:cuesheetId];
|
||||||
|
[self removeString:encodingId];
|
||||||
[self removeString:endianId];
|
[self removeString:endianId];
|
||||||
|
|
||||||
[self removeString:urlId];
|
[self removeString:urlId];
|
||||||
|
@ -1200,6 +1271,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
int64_t titleId = sqlite3_column_int64(st, select_track_data_out_title_id);
|
int64_t titleId = sqlite3_column_int64(st, select_track_data_out_title_id);
|
||||||
int64_t genreId = sqlite3_column_int64(st, select_track_data_out_genre_id);
|
int64_t genreId = sqlite3_column_int64(st, select_track_data_out_genre_id);
|
||||||
int64_t codecId = sqlite3_column_int64(st, select_track_data_out_codec_id);
|
int64_t codecId = sqlite3_column_int64(st, select_track_data_out_codec_id);
|
||||||
|
int64_t cuesheetId = sqlite3_column_int64(st, select_track_data_out_cuesheet_id);
|
||||||
|
int64_t encodingId = sqlite3_column_int64(st, select_track_data_out_encoding_id);
|
||||||
int64_t endianId = sqlite3_column_int64(st, select_track_data_out_endian_id);
|
int64_t endianId = sqlite3_column_int64(st, select_track_data_out_endian_id);
|
||||||
|
|
||||||
[self removeArt:artId];
|
[self removeArt:artId];
|
||||||
|
@ -1211,6 +1284,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
[self removeString:titleId];
|
[self removeString:titleId];
|
||||||
[self removeString:genreId];
|
[self removeString:genreId];
|
||||||
[self removeString:codecId];
|
[self removeString:codecId];
|
||||||
|
[self removeString:cuesheetId];
|
||||||
|
[self removeString:encodingId];
|
||||||
[self removeString:endianId];
|
[self removeString:endianId];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1223,6 +1298,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
int64_t titleId = [self addString:[track rawTitle]];
|
int64_t titleId = [self addString:[track rawTitle]];
|
||||||
int64_t genreId = [self addString:[track genre]];
|
int64_t genreId = [self addString:[track genre]];
|
||||||
int64_t codecId = [self addString:[track codec]];
|
int64_t codecId = [self addString:[track codec]];
|
||||||
|
int64_t cuesheetId = [self addString:[track cuesheet]];
|
||||||
|
int64_t encodingId = [self addString:[track encoding]];
|
||||||
int64_t trackNr = [[track track] intValue] | (((uint64_t)[[track disc] intValue]) << 32);
|
int64_t trackNr = [[track track] intValue] | (((uint64_t)[[track disc] intValue]) << 32);
|
||||||
int64_t year = [[track year] intValue];
|
int64_t year = [[track year] intValue];
|
||||||
int64_t unsignedFmt = [track Unsigned];
|
int64_t unsignedFmt = [track Unsigned];
|
||||||
|
@ -1258,6 +1335,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
sqlite3_bind_int64(st, update_track_in_title_id, titleId) ||
|
sqlite3_bind_int64(st, update_track_in_title_id, titleId) ||
|
||||||
sqlite3_bind_int64(st, update_track_in_genre_id, genreId) ||
|
sqlite3_bind_int64(st, update_track_in_genre_id, genreId) ||
|
||||||
sqlite3_bind_int64(st, update_track_in_codec_id, codecId) ||
|
sqlite3_bind_int64(st, update_track_in_codec_id, codecId) ||
|
||||||
|
sqlite3_bind_int64(st, update_track_in_cuesheet_id, cuesheetId) ||
|
||||||
|
sqlite3_bind_int64(st, update_track_in_encoding_id, encodingId) ||
|
||||||
sqlite3_bind_int64(st, update_track_in_track, trackNr) ||
|
sqlite3_bind_int64(st, update_track_in_track, trackNr) ||
|
||||||
sqlite3_bind_int64(st, update_track_in_year, year) ||
|
sqlite3_bind_int64(st, update_track_in_year, year) ||
|
||||||
sqlite3_bind_int64(st, update_track_in_unsigned, unsignedFmt) ||
|
sqlite3_bind_int64(st, update_track_in_unsigned, unsignedFmt) ||
|
||||||
|
@ -1287,6 +1366,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
[self removeString:titleId];
|
[self removeString:titleId];
|
||||||
[self removeString:genreId];
|
[self removeString:genreId];
|
||||||
[self removeString:codecId];
|
[self removeString:codecId];
|
||||||
|
[self removeString:cuesheetId];
|
||||||
|
[self removeString:encodingId];
|
||||||
[self removeString:endianId];
|
[self removeString:endianId];
|
||||||
|
|
||||||
[self removeString:urlId];
|
[self removeString:urlId];
|
||||||
|
@ -1331,6 +1412,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
int64_t titleId = sqlite3_column_int64(st, select_track_data_out_title_id);
|
int64_t titleId = sqlite3_column_int64(st, select_track_data_out_title_id);
|
||||||
int64_t genreId = sqlite3_column_int64(st, select_track_data_out_genre_id);
|
int64_t genreId = sqlite3_column_int64(st, select_track_data_out_genre_id);
|
||||||
int64_t codecId = sqlite3_column_int64(st, select_track_data_out_codec_id);
|
int64_t codecId = sqlite3_column_int64(st, select_track_data_out_codec_id);
|
||||||
|
int64_t cuesheetId = sqlite3_column_int64(st, select_track_data_out_cuesheet_id);
|
||||||
|
int64_t encodingId = sqlite3_column_int64(st, select_track_data_out_encoding_id);
|
||||||
int64_t trackNr = sqlite3_column_int64(st, select_track_data_out_track);
|
int64_t trackNr = sqlite3_column_int64(st, select_track_data_out_track);
|
||||||
int64_t year = sqlite3_column_int64(st, select_track_data_out_year);
|
int64_t year = sqlite3_column_int64(st, select_track_data_out_year);
|
||||||
int64_t unsignedFmt = sqlite3_column_int64(st, select_track_data_out_unsigned);
|
int64_t unsignedFmt = sqlite3_column_int64(st, select_track_data_out_unsigned);
|
||||||
|
@ -1360,6 +1443,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
[entry setTitle:[self getString:titleId]];
|
[entry setTitle:[self getString:titleId]];
|
||||||
[entry setGenre:[self getString:genreId]];
|
[entry setGenre:[self getString:genreId]];
|
||||||
[entry setCodec:[self getString:codecId]];
|
[entry setCodec:[self getString:codecId]];
|
||||||
|
[entry setCuesheet:[self getString:cuesheetId]];
|
||||||
|
[entry setEncoding:[self getString:encodingId]];
|
||||||
[entry setTrack:[NSNumber numberWithInteger:trackNr]];
|
[entry setTrack:[NSNumber numberWithInteger:trackNr]];
|
||||||
[entry setDisc:[NSNumber numberWithInteger:discNr]];
|
[entry setDisc:[NSNumber numberWithInteger:discNr]];
|
||||||
[entry setYear:[NSNumber numberWithInteger:year]];
|
[entry setYear:[NSNumber numberWithInteger:year]];
|
||||||
|
@ -1442,6 +1527,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
int64_t titleId = sqlite3_column_int64(st, select_track_data_out_title_id);
|
int64_t titleId = sqlite3_column_int64(st, select_track_data_out_title_id);
|
||||||
int64_t genreId = sqlite3_column_int64(st, select_track_data_out_genre_id);
|
int64_t genreId = sqlite3_column_int64(st, select_track_data_out_genre_id);
|
||||||
int64_t codecId = sqlite3_column_int64(st, select_track_data_out_codec_id);
|
int64_t codecId = sqlite3_column_int64(st, select_track_data_out_codec_id);
|
||||||
|
int64_t cuesheetId = sqlite3_column_int64(st, select_track_data_out_cuesheet_id);
|
||||||
|
int64_t encodingId = sqlite3_column_int64(st, select_track_data_out_encoding_id);
|
||||||
int64_t endianId = sqlite3_column_int64(st, select_track_data_out_endian_id);
|
int64_t endianId = sqlite3_column_int64(st, select_track_data_out_endian_id);
|
||||||
|
|
||||||
sqlite3_reset(st);
|
sqlite3_reset(st);
|
||||||
|
@ -1455,6 +1542,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
||||||
[self removeString:titleId];
|
[self removeString:titleId];
|
||||||
[self removeString:genreId];
|
[self removeString:genreId];
|
||||||
[self removeString:codecId];
|
[self removeString:codecId];
|
||||||
|
[self removeString:cuesheetId];
|
||||||
|
[self removeString:encodingId];
|
||||||
[self removeString:endianId];
|
[self removeString:endianId];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue