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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<value key="minSize" type="size" width="240" height="420"/>
|
||||
<value key="maxSize" type="size" width="400" height="600"/>
|
||||
<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"/>
|
||||
<subviews>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Artist:" id="10">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -33,7 +33,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Album:" id="12">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -42,7 +42,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Track:" id="14">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -51,7 +51,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Length:" id="16">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -60,7 +60,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Year:" id="18">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -69,7 +69,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Genre:" id="20">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -78,7 +78,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Sample Rate:" id="22">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -87,7 +87,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Channels:" id="28">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -96,7 +96,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Bitrate:" id="32">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -105,7 +105,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Bits Per Sample:" id="31">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -114,7 +114,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Title:" id="24">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -123,7 +123,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="34">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -135,7 +135,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="36">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -147,7 +147,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="38">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -159,7 +159,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="40">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -171,7 +171,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="42">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -183,7 +183,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="44">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -195,7 +195,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="46">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -207,7 +207,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="50">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -219,7 +219,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="52">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -231,7 +231,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="54">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -243,7 +243,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="56">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -255,7 +255,7 @@
|
|||
</connections>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Codec:" id="cbq-TT-CZX">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -264,7 +264,7 @@
|
|||
</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"/>
|
||||
<rect key="frame" x="113" y="196" 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"/>
|
||||
|
@ -275,8 +275,29 @@
|
|||
<binding destination="-2" name="value" keyPath="valueToDisplay.codec" id="Tle-Vx-BN5"/>
|
||||
</connections>
|
||||
</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">
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Filename:" id="85">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -285,7 +306,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="87">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
@ -311,7 +332,7 @@
|
|||
</connections>
|
||||
</imageView>
|
||||
<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"/>
|
||||
<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"/>
|
||||
|
@ -320,7 +341,7 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="N/A" id="B8w-o8-ZBw">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
|
|
|
@ -59,6 +59,8 @@
|
|||
NSString *codec;
|
||||
|
||||
NSString *endian;
|
||||
|
||||
NSString *encoding;
|
||||
|
||||
BOOL seekable;
|
||||
|
||||
|
@ -149,6 +151,8 @@
|
|||
|
||||
@property(retain) NSString *endian;
|
||||
|
||||
@property(retain) NSString *encoding;
|
||||
|
||||
@property BOOL seekable;
|
||||
|
||||
@property BOOL metadataLoaded;
|
||||
|
|
|
@ -59,6 +59,8 @@
|
|||
|
||||
@synthesize endian;
|
||||
|
||||
@synthesize encoding;
|
||||
|
||||
@synthesize seekable;
|
||||
|
||||
@synthesize metadataLoaded;
|
||||
|
@ -491,6 +493,8 @@
|
|||
pe->codec = [codec copyWithZone:zone];
|
||||
|
||||
pe->endian = [endian copyWithZone:zone];
|
||||
|
||||
pe->encoding = [encoding copyWithZone:zone];
|
||||
|
||||
pe->seekable = seekable;
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ static CAdPlugDatabase * g_database = NULL;
|
|||
[NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo
|
||||
[NSNumber numberWithBool:YES], @"seekable",
|
||||
[NSString stringWithUTF8String:m_player->gettype().c_str()], @"codec",
|
||||
@"synthesized", @"encoding",
|
||||
@"host", @"endian",
|
||||
nil];
|
||||
}
|
||||
|
|
|
@ -349,6 +349,7 @@ static SInt64 getSizeProc(void* clientData) {
|
|||
[NSNumber numberWithBool:YES], @"seekable",
|
||||
codec, @"codec",
|
||||
floatingPoint ? @"host" : @"big", @"endian",
|
||||
floatingPoint ? @"lossy" : @"lossless", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -580,6 +580,7 @@ int lockmgr_callback(void ** mutex, enum AVLockOp op)
|
|||
[NSNumber numberWithBool:seekable], @"seekable",
|
||||
[NSString stringWithUTF8String:avcodec_get_name(codecCtx->codec_id)], @"codec",
|
||||
@"host", @"endian",
|
||||
floatingPoint ? @"lossy" : @"lossless", @"encoding",
|
||||
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",
|
||||
@"FLAC",@"codec",
|
||||
@"big",@"endian",
|
||||
@"lossless", @"encoding",
|
||||
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 numberWithBool:[source seekable]], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -1727,6 +1727,7 @@ static int usf_info(void * context, const char * name, const char * value)
|
|||
[NSNumber numberWithFloat:volume], @"volume",
|
||||
codec, @"codec",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ static void oneTimeInit(void)
|
|||
[NSNumber numberWithInt:2], @"channels",
|
||||
[NSNumber numberWithBool:YES], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -115,6 +115,7 @@ static OSType getOSType(const char * in_)
|
|||
[NSNumber numberWithBool:YES], @"seekable",
|
||||
@"MIDI", @"codec",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -213,6 +213,7 @@ mpc_bool_t CanSeekProc(mpc_reader *p_reader)
|
|||
[NSNumber numberWithBool:[source seekable]], @"seekable",
|
||||
@"Musepack", @"codec",
|
||||
@"host",@"endian",
|
||||
@"lossy", @"encoding",
|
||||
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 numberWithBool:YES], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
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 numberWithBool:YES], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -169,6 +169,7 @@ opus_int64 sourceTell(void *_stream)
|
|||
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
||||
@"Opus", @"codec",
|
||||
@"host", @"endian",
|
||||
@"lossy", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -95,6 +95,7 @@
|
|||
[NSNumber numberWithBool:seekable ],@"seekable",
|
||||
@"Shorten",@"codec",
|
||||
@"little",@"endian",
|
||||
@"lossless", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ enum { channels = 2 };
|
|||
[NSNumber numberWithInt:channels], @"channels",
|
||||
[NSNumber numberWithBool:YES], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -161,6 +161,7 @@ long sourceTell(void *datasource)
|
|||
[NSNumber numberWithBool:([source seekable] && seekable)], @"seekable",
|
||||
@"Vorbis", @"codec",
|
||||
@"host", @"endian",
|
||||
@"lossy", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
size_t inputBufferSize;
|
||||
|
||||
BOOL isDSD;
|
||||
BOOL isLossy;
|
||||
|
||||
int bitsPerSample;
|
||||
int channels;
|
||||
|
|
|
@ -187,6 +187,8 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount)
|
|||
bitrate = (int)(WavpackGetAverageBitrate(wpc, TRUE)/1000.0);
|
||||
|
||||
floatingPoint = MODE_FLOAT & WavpackGetMode(wpc) && 127 == WavpackGetFloatNormExp(wpc);
|
||||
|
||||
isLossy = !(WavpackGetMode(wpc) & MODE_LOSSLESS);
|
||||
|
||||
[self willChangeValueForKey:@"properties"];
|
||||
[self didChangeValueForKey:@"properties"];
|
||||
|
@ -313,6 +315,7 @@ int32_t WriteBytesProc(void *ds, void *data, int32_t bcount)
|
|||
[NSNumber numberWithBool:[[wv source] seekable]], @"seekable",
|
||||
@"Wavpack",@"codec",
|
||||
@"little",@"endian",
|
||||
isLossy ? @"lossy" : @"lossless", @"encoding",
|
||||
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 numberWithBool:[source seekable]], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
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 numberWithBool:[source seekable]], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"synthesized", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -174,6 +174,7 @@ static NSString* get_description_tag(const char* description, const char *tag, c
|
|||
rgTrackPeak, @"replayGainTrackPeak",
|
||||
codec, @"codec",
|
||||
@"host", @"endian",
|
||||
@"lossy/lossless", @"encoding",
|
||||
nil];
|
||||
|
||||
if ( [title isEqualToString:@""] ) {
|
||||
|
@ -315,6 +316,7 @@ static NSString* get_description_tag(const char* description, const char *tag, c
|
|||
[NSNumber numberWithInt:channels], @"channels",
|
||||
[NSNumber numberWithBool:YES], @"seekable",
|
||||
@"host", @"endian",
|
||||
@"lossy/lossless", @"encoding",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{
|
||||
@private NSString *g_databasePath;
|
||||
@private sqlite3 *g_database;
|
||||
@private sqlite3_stmt *stmt[38];
|
||||
@private sqlite3_stmt *stmt[39];
|
||||
@private NSMutableArray *databaseMirror;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "SQLiteStore.h"
|
||||
#import "Logging.h"
|
||||
|
||||
NSString * getDatabasePath(void)
|
||||
{
|
||||
|
@ -16,6 +17,8 @@ NSString * getDatabasePath(void)
|
|||
return [basePath stringByAppendingPathComponent:filename];
|
||||
}
|
||||
|
||||
static int64_t currentSchemaVersion = 1;
|
||||
|
||||
NSArray * createSchema(void)
|
||||
{
|
||||
return @[
|
||||
|
@ -40,6 +43,8 @@ NSArray * createSchema(void)
|
|||
titleid INTEGER, \
|
||||
genreid INTEGER, \
|
||||
codecid INTEGER, \
|
||||
encodingid INTEGER, \
|
||||
cuesheetid INTEGER, \
|
||||
track INTEGER, \
|
||||
year INTEGER, \
|
||||
unsigned INTEGER, \
|
||||
|
@ -73,7 +78,9 @@ NSArray * createSchema(void)
|
|||
|
||||
enum
|
||||
{
|
||||
stmt_select_string = 0,
|
||||
stmt_user_version_get = 0,
|
||||
|
||||
stmt_select_string,
|
||||
stmt_select_string_refcount,
|
||||
stmt_select_string_value,
|
||||
stmt_bump_string,
|
||||
|
@ -119,6 +126,14 @@ enum
|
|||
stmt_count,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
user_version_get_out_version_number = 0,
|
||||
};
|
||||
|
||||
const char * query_user_version_get = "PRAGMA user_version";
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
select_string_in_id = 1,
|
||||
|
@ -264,6 +279,8 @@ enum
|
|||
select_track_data_out_title_id,
|
||||
select_track_data_out_genre_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_year,
|
||||
select_track_data_out_unsigned,
|
||||
|
@ -283,7 +300,7 @@ enum
|
|||
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
|
||||
{
|
||||
|
@ -309,6 +326,8 @@ enum
|
|||
add_track_in_title_id,
|
||||
add_track_in_genre_id,
|
||||
add_track_in_codec_id,
|
||||
add_track_in_cuesheet_id,
|
||||
add_track_in_encoding_id,
|
||||
add_track_in_track,
|
||||
add_track_in_year,
|
||||
add_track_in_unsigned,
|
||||
|
@ -328,7 +347,7 @@ enum
|
|||
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
|
||||
{
|
||||
|
@ -347,6 +366,8 @@ enum
|
|||
update_track_in_title_id,
|
||||
update_track_in_genre_id,
|
||||
update_track_in_codec_id,
|
||||
update_track_in_cuesheet_id,
|
||||
update_track_in_encoding_id,
|
||||
update_track_in_track,
|
||||
update_track_in_year,
|
||||
update_track_in_unsigned,
|
||||
|
@ -367,7 +388,7 @@ enum
|
|||
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
|
||||
|
@ -575,18 +596,62 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
|
||||
if (sqlite3_open([g_databasePath UTF8String], &g_database) == SQLITE_OK)
|
||||
{
|
||||
char * error;
|
||||
NSArray * schemas = createSchema();
|
||||
|
||||
for (NSString *schema in schemas)
|
||||
{
|
||||
char * error;
|
||||
if (sqlite3_exec(g_database, [schema UTF8String], NULL, NULL, &error) != SQLITE_OK)
|
||||
{
|
||||
DLog(@"SQLite error: %s", error);
|
||||
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) ||
|
||||
PREPARE(select_string_refcount) ||
|
||||
|
@ -1031,6 +1096,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
int64_t titleId = [self addString:[track rawTitle]];
|
||||
int64_t genreId = [self addString:[track genre]];
|
||||
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 year = [[track year] intValue];
|
||||
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_genre_id, genreId) ||
|
||||
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_year, year) ||
|
||||
sqlite3_bind_int64(st, add_track_in_unsigned, unsignedFmt) ||
|
||||
|
@ -1094,6 +1163,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
[self removeString:titleId];
|
||||
[self removeString:genreId];
|
||||
[self removeString:codecId];
|
||||
[self removeString:cuesheetId];
|
||||
[self removeString:encodingId];
|
||||
[self removeString:endianId];
|
||||
|
||||
[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 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 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);
|
||||
|
||||
[self removeArt:artId];
|
||||
|
@ -1211,6 +1284,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
[self removeString:titleId];
|
||||
[self removeString:genreId];
|
||||
[self removeString:codecId];
|
||||
[self removeString:cuesheetId];
|
||||
[self removeString:encodingId];
|
||||
[self removeString:endianId];
|
||||
}
|
||||
|
||||
|
@ -1223,6 +1298,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
int64_t titleId = [self addString:[track rawTitle]];
|
||||
int64_t genreId = [self addString:[track genre]];
|
||||
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 year = [[track year] intValue];
|
||||
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_genre_id, genreId) ||
|
||||
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_year, year) ||
|
||||
sqlite3_bind_int64(st, update_track_in_unsigned, unsignedFmt) ||
|
||||
|
@ -1287,6 +1366,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
[self removeString:titleId];
|
||||
[self removeString:genreId];
|
||||
[self removeString:codecId];
|
||||
[self removeString:cuesheetId];
|
||||
[self removeString:encodingId];
|
||||
[self removeString:endianId];
|
||||
|
||||
[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 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 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 year = sqlite3_column_int64(st, select_track_data_out_year);
|
||||
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 setGenre:[self getString:genreId]];
|
||||
[entry setCodec:[self getString:codecId]];
|
||||
[entry setCuesheet:[self getString:cuesheetId]];
|
||||
[entry setEncoding:[self getString:encodingId]];
|
||||
[entry setTrack:[NSNumber numberWithInteger:trackNr]];
|
||||
[entry setDisc:[NSNumber numberWithInteger:discNr]];
|
||||
[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 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 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);
|
||||
|
||||
sqlite3_reset(st);
|
||||
|
@ -1455,6 +1542,8 @@ static SQLiteStore *g_sharedStore = NULL;
|
|||
[self removeString:titleId];
|
||||
[self removeString:genreId];
|
||||
[self removeString:codecId];
|
||||
[self removeString:cuesheetId];
|
||||
[self removeString:encodingId];
|
||||
[self removeString:endianId];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue