From 45417592f00ad61a8a5755e87411a524c537b6c1 Mon Sep 17 00:00:00 2001 From: chudov Date: Sat, 22 Oct 2011 23:53:33 +0000 Subject: [PATCH] misc tests --- .../CUETools.CTDB.EACPlugin.Installer.vdproj | 960 ++++++++++++++++++ CUETools.CTDB.EACPlugin/FormMetadata.cs | 7 +- CUETools.Processor/Processor.cs | 32 +- .../CUETools.TestCodecs.csproj | 5 + .../CUETools.TestCodecs/FlacWriterTest.cs | 70 ++ .../CUETools.TestCodecs/FlakeWriterTest.cs | 20 +- CUETools/CUETools.TestCodecs/flacwriter1.flac | Bin 0 -> 182 bytes CUETools/CUETools.TestCodecs/test.flac | Bin 0 -> 51939 bytes CUETools/CUETools.sln | 15 +- CUETools/Resources/ctdbheader.jpg | Bin 0 -> 9529 bytes CUETools/localtestrun.testrunconfig | 25 +- 11 files changed, 1112 insertions(+), 22 deletions(-) create mode 100644 CUETools.CTDB.EACPlugin.Installer/CUETools.CTDB.EACPlugin.Installer.vdproj create mode 100644 CUETools/CUETools.TestCodecs/FlacWriterTest.cs create mode 100644 CUETools/CUETools.TestCodecs/flacwriter1.flac create mode 100644 CUETools/CUETools.TestCodecs/test.flac create mode 100644 CUETools/Resources/ctdbheader.jpg diff --git a/CUETools.CTDB.EACPlugin.Installer/CUETools.CTDB.EACPlugin.Installer.vdproj b/CUETools.CTDB.EACPlugin.Installer/CUETools.CTDB.EACPlugin.Installer.vdproj new file mode 100644 index 0000000..702ac8d --- /dev/null +++ b/CUETools.CTDB.EACPlugin.Installer/CUETools.CTDB.EACPlugin.Installer.vdproj @@ -0,0 +1,960 @@ +"DeployProject" +{ +"VSVersion" = "3:800" +"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" +"IsWebType" = "8:FALSE" +"ProjectName" = "8:CUETools.CTDB.EACPlugin.Installer" +"LanguageId" = "3:1033" +"CodePage" = "3:1252" +"UILanguageId" = "3:1033" +"SccProjectName" = "8:" +"SccLocalPath" = "8:" +"SccAuxPath" = "8:" +"SccProvider" = "8:" + "Hierarchy" + { + "Entry" + { + "MsmKey" = "8:_404CDECAD44DEDE89F5968D20B9790D4" + "OwnerKey" = "8:_5C38BA7F54E368532D5699479E787C04" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_404CDECAD44DEDE89F5968D20B9790D4" + "OwnerKey" = "8:_D773630141C71B97B8E286CAB5D6745D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_404CDECAD44DEDE89F5968D20B9790D4" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5C38BA7F54E368532D5699479E787C04" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_5C38BA7F54E368532D5699479E787C04" + "OwnerKey" = "8:_D773630141C71B97B8E286CAB5D6745D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_88C1C00C7C570D8CCF5DFB2742F06623" + "OwnerKey" = "8:_5C38BA7F54E368532D5699479E787C04" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_88C1C00C7C570D8CCF5DFB2742F06623" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_C8D6D24D8A62DE5D9BD6EBE19184F81B" + "OwnerKey" = "8:_5C38BA7F54E368532D5699479E787C04" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_C8D6D24D8A62DE5D9BD6EBE19184F81B" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_D773630141C71B97B8E286CAB5D6745D" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_E985E1E2E343425AAC193B3EB3A5B7F0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FCE5A5A259EDA6827D332455737A9470" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_82CE165AE35A4FB48DF2F4F7C072C14C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_FCE5A5A259EDA6827D332455737A9470" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_D773630141C71B97B8E286CAB5D6745D" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_5C38BA7F54E368532D5699479E787C04" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_C8D6D24D8A62DE5D9BD6EBE19184F81B" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_88C1C00C7C570D8CCF5DFB2742F06623" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_404CDECAD44DEDE89F5968D20B9790D4" + "MsmSig" = "8:_UNDEFINED" + } + } + "Configurations" + { + "Debug" + { + "DisplayName" = "8:Debug" + "IsDebugOnly" = "11:TRUE" + "IsReleaseOnly" = "11:FALSE" + "OutputFilename" = "8:Debug\\CUETools.CTDB.EACPlugin.Installer.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:2" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + } + } + "Release" + { + "DisplayName" = "8:Release" + "IsDebugOnly" = "11:FALSE" + "IsReleaseOnly" = "11:TRUE" + "OutputFilename" = "8:Release\\CUETools.CTDB.EACPlugin.Installer.msi" + "PackageFilesAs" = "3:2" + "PackageFileSize" = "3:-2147483648" + "CabType" = "3:1" + "Compression" = "3:3" + "SignOutput" = "11:FALSE" + "CertificateFile" = "8:" + "PrivateKeyFile" = "8:" + "TimeStampServer" = "8:" + "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1" + { + "Name" = "8:.NET Framework 3.5 SP1" + "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1" + } + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" + { + "Name" = "8:Windows Installer 3.1" + "ProductCode" = "8:Microsoft.Windows.Installer.3.1" + } + } + } + } + } + "Deployable" + { + "CustomAction" + { + } + "DefaultFeature" + { + "Name" = "8:DefaultFeature" + "Title" = "8:" + "Description" = "8:" + } + "ExternalPersistence" + { + "LaunchCondition" + { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC185A7379014186B4A3697CC97F0D4A" + { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "Version" = "8:3.5.30729" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617" + } + } + } + "File" + { + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_404CDECAD44DEDE89F5968D20B9790D4" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:CUETools.CDImage, Version=2.1.2.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_404CDECAD44DEDE89F5968D20B9790D4" + { + "Name" = "8:CUETools.CDImage.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:CUETools.CDImage.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_5C38BA7F54E368532D5699479E787C04" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:CUETools.AccurateRip, Version=2.1.2.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_5C38BA7F54E368532D5699479E787C04" + { + "Name" = "8:CUETools.AccurateRip.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:CUETools.AccurateRip.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_88C1C00C7C570D8CCF5DFB2742F06623" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:CUETools.Codecs, Version=2.1.2.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_88C1C00C7C570D8CCF5DFB2742F06623" + { + "Name" = "8:CUETools.Codecs.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:CUETools.Codecs.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_C8D6D24D8A62DE5D9BD6EBE19184F81B" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:CUETools.Parity, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_C8D6D24D8A62DE5D9BD6EBE19184F81B" + { + "Name" = "8:CUETools.Parity.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:CUETools.Parity.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_D773630141C71B97B8E286CAB5D6745D" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:CUETools.CTDB, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_D773630141C71B97B8E286CAB5D6745D" + { + "Name" = "8:CUETools.CTDB.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:CUETools.CTDB.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E985E1E2E343425AAC193B3EB3A5B7F0" + { + "SourcePath" = "8:..\\CUETools\\Resources\\ctdbheader.bmp" + "TargetName" = "8:ctdbheader.bmp" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_FCE5A5A259EDA6827D332455737A9470" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Interop.HelperFunctionsLib, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_FCE5A5A259EDA6827D332455737A9470" + { + "Name" = "8:Interop.HelperFunctionsLib.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Interop.HelperFunctionsLib.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + } + "FileType" + { + } + "Folder" + { + "{3C67513D-01DD-4637-8A68-80971EB9504F}:_B6AE380AE9784D55925E5A2F6CEC6447" + { + "DefaultLocation" = "8:[EACFOLDER]" + "Name" = "8:#1925" + "AlwaysCreate" = "11:FALSE" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Property" = "8:TARGETDIR" + "Folders" + { + } + } + } + "LaunchCondition" + { + "{836E08B8-0285-4809-BA42-01DB6754A45D}:_7A1614A380F042E28F20DEE4D53A8E69" + { + "Name" = "8:EAC" + "Condition" = "8:EACFOLDER AND EACVERSION = \"1.0beta3\"" + "Message" = "8:EAC is not installed. Would you like to download it?" + "InstallUrl" = "8:http://www.exactaudiocopy.de/en/index.php/resources/download/" + } + } + "Locator" + { + "{CF66B7F7-B7DA-4B08-A67A-233430638C9C}:_3ED8425D9DC54C378340720CCC46588A" + { + "Name" = "8:EAC Version" + "Root" = "2:1" + "RegKey" = "8:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Exact Audio Copy" + "Value" = "8:DisplayVersion" + "Property" = "8:EACVERSION" + } + "{CF66B7F7-B7DA-4B08-A67A-233430638C9C}:_EEE61D01C8E9468EA11562DC8C4EE3FF" + { + "Name" = "8:EAC Folder" + "Root" = "2:2" + "RegKey" = "8:Software\\AWSoftware\\EACU" + "Value" = "8:InstallPath" + "Property" = "8:EACFOLDER" + } + } + "MsiBootstrapper" + { + "LangId" = "3:1033" + "RequiresElevation" = "11:FALSE" + } + "Product" + { + "Name" = "8:Microsoft Visual Studio" + "ProductName" = "8:EAC CTDB Plugin" + "ProductCode" = "8:{808BD9EB-533A-4405-8464-5AACC9B0C6DD}" + "PackageCode" = "8:{6EE86F90-4EFF-43A1-B7FC-F25E1686A65F}" + "UpgradeCode" = "8:{E416086B-D9D3-424C-AAEB-397EC05ECF69}" + "RestartWWWService" = "11:FALSE" + "RemovePreviousVersions" = "11:TRUE" + "DetectNewerInstalledVersion" = "11:TRUE" + "InstallAllUsers" = "11:FALSE" + "ProductVersion" = "8:2.1.3" + "Manufacturer" = "8:Grigory Chudov" + "ARPHELPTELEPHONE" = "8:" + "ARPHELPLINK" = "8:http://www.cuetools.net" + "Title" = "8:EAC CTDB Plugin Installer" + "Subject" = "8:" + "ARPCONTACT" = "8:Grigory Chudov" + "Keywords" = "8:" + "ARPCOMMENTS" = "8:" + "ARPURLINFOABOUT" = "8:http://www.cuetools.net" + "ARPPRODUCTICON" = "8:" + "ARPIconIndex" = "3:0" + "SearchPath" = "8:" + "UseSystemSearchPath" = "11:TRUE" + "TargetPlatform" = "3:0" + "PreBuildEvent" = "8:" + "PostBuildEvent" = "8:" + "RunPostBuildEvent" = "3:0" + } + "Registry" + { + "HKLM" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_E7BCCC0DEB344EF0B759D200395A4CBD" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_56DED725D29D441E8F7ACC23E64EBB8A" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCU" + { + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_5A1B9B64D55A44539FEA98548B949770" + { + "Name" = "8:Software" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_FBE21B98851B4DF888C801F1291B8416" + { + "Name" = "8:[Manufacturer]" + "Condition" = "8:" + "AlwaysCreate" = "11:FALSE" + "DeleteAtUninstall" = "11:FALSE" + "Transitive" = "11:FALSE" + "Keys" + { + } + "Values" + { + } + } + } + "Values" + { + } + } + } + } + "HKCR" + { + "Keys" + { + } + } + "HKU" + { + "Keys" + { + } + } + "HKPU" + { + "Keys" + { + } + } + } + "Sequences" + { + } + "Shortcut" + { + } + "UserInterface" + { + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_06054E0974C24DDDBDB98C2561BCC47B" + { + "Name" = "8:#1902" + "Sequence" = "3:2" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_149D2C65A6034E23981257A4465B7614" + { + "Sequence" = "3:100" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_28D1405EE84E4F1D89E93BE7F0DDDDEC" + { + "Name" = "8:#1902" + "Sequence" = "3:1" + "Attributes" = "3:3" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5CFE0A330B69423AA82076277CB8DAA7" + { + "Sequence" = "3:100" + "DisplayName" = "8:Finished" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdFinishedDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_E985E1E2E343425AAC193B3EB3A5B7F0" + "UsePlugInResources" = "11:TRUE" + } + "UpdateText" + { + "Name" = "8:UpdateText" + "DisplayName" = "8:#1058" + "Description" = "8:#1158" + "Type" = "3:15" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1258" + "DefaultValue" = "8:#1258" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_6C4CE08D503448388C518E14148CF168" + { + "Name" = "8:#1901" + "Sequence" = "3:2" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_796CAFA873F547B5966AB915E3FD68C1" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7ACB77F2F2D940DCA8A86120E87291A7" + { + "Name" = "8:#1900" + "Sequence" = "3:1" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0D135E2BB92F484583633275342BEE39" + { + "Sequence" = "3:110" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_E985E1E2E343425AAC193B3EB3A5B7F0" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_7E1BC5F5734041EEA47B29466BDFE376" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdBasicDialogs.wim" + } + "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_D5BF64419152419AA5F48FA550D9DA86" + { + "UseDynamicProperties" = "11:FALSE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdUserInterface.wim" + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_D703273D4A974D7F928302E53730761C" + { + "Name" = "8:#1900" + "Sequence" = "3:2" + "Attributes" = "3:1" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0A6D512C47D44E7E942B2605535D0362" + { + "Sequence" = "3:200" + "DisplayName" = "8:Installation Folder" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminFolderDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B007998999164181BC807066594F8BA6" + { + "Sequence" = "3:100" + "DisplayName" = "8:Welcome" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + "CopyrightWarning" + { + "Name" = "8:CopyrightWarning" + "DisplayName" = "8:#1002" + "Description" = "8:#1102" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1202" + "DefaultValue" = "8:#1202" + "UsePlugInResources" = "11:TRUE" + } + "Welcome" + { + "Name" = "8:Welcome" + "DisplayName" = "8:#1003" + "Description" = "8:#1103" + "Type" = "3:3" + "ContextData" = "8:" + "Attributes" = "3:0" + "Setting" = "3:1" + "Value" = "8:#1203" + "DefaultValue" = "8:#1203" + "UsePlugInResources" = "11:TRUE" + } + } + } + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F7DB7047AEA841FF86A510F94AFB4CC3" + { + "Sequence" = "3:300" + "DisplayName" = "8:Confirm Installation" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F9C17695705847E7A473DDE58CD1482F" + { + "Name" = "8:#1901" + "Sequence" = "3:1" + "Attributes" = "3:2" + "Dialogs" + { + "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D2E9A60F16564832A8289FE0EB8D9D95" + { + "Sequence" = "3:100" + "DisplayName" = "8:Progress" + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:FALSE" + "SourcePath" = "8:\\VsdProgressDlg.wid" + "Properties" + { + "BannerBitmap" + { + "Name" = "8:BannerBitmap" + "DisplayName" = "8:#1001" + "Description" = "8:#1101" + "Type" = "3:8" + "ContextData" = "8:Bitmap" + "Attributes" = "3:4" + "Setting" = "3:2" + "Value" = "8:_E985E1E2E343425AAC193B3EB3A5B7F0" + "UsePlugInResources" = "11:TRUE" + } + "ShowProgress" + { + "Name" = "8:ShowProgress" + "DisplayName" = "8:#1009" + "Description" = "8:#1109" + "Type" = "3:5" + "ContextData" = "8:1;True=1;False=0" + "Attributes" = "3:0" + "Setting" = "3:0" + "Value" = "3:1" + "DefaultValue" = "3:1" + "UsePlugInResources" = "11:TRUE" + } + } + } + } + } + } + "MergeModule" + { + } + "ProjectOutput" + { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_82CE165AE35A4FB48DF2F4F7C072C14C" + { + "SourcePath" = "8:..\\CUETools.CTDB.EACPlugin\\obj\\Release\\CUETools.CTDB.EACPlugin.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_B6AE380AE9784D55925E5A2F6CEC6447" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{816D964C-9772-46C5-AF1D-49E8C78A1E7C}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } + } + } +} diff --git a/CUETools.CTDB.EACPlugin/FormMetadata.cs b/CUETools.CTDB.EACPlugin/FormMetadata.cs index 06a55d9..066a7b8 100644 --- a/CUETools.CTDB.EACPlugin/FormMetadata.cs +++ b/CUETools.CTDB.EACPlugin/FormMetadata.cs @@ -70,8 +70,11 @@ namespace CUETools.CTDB.EACPlugin label == "" ? "" : " (" + label + ")"); var tip = new StringBuilder(); var i = 0; - foreach(var tr in metadata.track) - tip.AppendFormat("{0}. {2}{1}\n", ++i, tr.name, ((tr.artist ?? metadata.artist) == metadata.artist) ? "" : tr.artist + " / "); + if (metadata.track != null) + { + foreach (var tr in metadata.track) + tip.AppendFormat("{0}. {2}{1}\n", ++i, tr.name, ((tr.artist ?? metadata.artist) == metadata.artist) ? "" : tr.artist + " / "); + } listView1.Items.Add(new ListViewItem(text) { Tag = metadata, ImageKey = metadata.source, ToolTipText = tip.ToString() }); } this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); diff --git a/CUETools.Processor/Processor.cs b/CUETools.Processor/Processor.cs index 3732d6e..ca6cdf7 100644 --- a/CUETools.Processor/Processor.cs +++ b/CUETools.Processor/Processor.cs @@ -4786,23 +4786,29 @@ return processor.Go(); { if (_hasEmbeddedCUESheet) { - string trackPrefix = String.Format("cue_track{0:00}_", iTrack + 1); - NameValueCollection albumTags = Tagging.Analyze(_fileInfo); - foreach (string key in albumTags.AllKeys) + if (_fileInfo != null) { - if (key.ToLower().StartsWith(trackPrefix) - || !key.ToLower().StartsWith("cue_track")) + string trackPrefix = String.Format("cue_track{0:00}_", iTrack + 1); + NameValueCollection albumTags = Tagging.Analyze(_fileInfo); + foreach (string key in albumTags.AllKeys) { - string name = key.ToLower().StartsWith(trackPrefix) ? - key.Substring(trackPrefix.Length) : key; - string[] values = albumTags.GetValues(key); - for (int j = 0; j < values.Length; j++) - destTags.Add(name, values[j]); + if (key.ToLower().StartsWith(trackPrefix) + || !key.ToLower().StartsWith("cue_track")) + { + string name = key.ToLower().StartsWith(trackPrefix) ? + key.Substring(trackPrefix.Length) : key; + string[] values = albumTags.GetValues(key); + for (int j = 0; j < values.Length; j++) + destTags.Add(name, values[j]); + } } } } else if (_hasTrackFilenames) - destTags.Add(Tagging.Analyze(_tracks[iTrack]._fileInfo)); + { + if (_tracks[iTrack]._fileInfo != null) + destTags.Add(Tagging.Analyze(_tracks[iTrack]._fileInfo)); + } else if (_hasSingleFilename) { // TODO? @@ -4850,7 +4856,8 @@ return processor.Go(); { if (_hasEmbeddedCUESheet || _hasSingleFilename) { - destTags.Add(Tagging.Analyze(_fileInfo)); + if (_fileInfo != null) + destTags.Add(Tagging.Analyze(_fileInfo)); if (!fWithCUE) CleanupTags(destTags, "CUE_TRACK"); } @@ -4858,6 +4865,7 @@ return processor.Go(); { for (int iTrack = 0; iTrack < TrackCount; iTrack++) { + if (_tracks[iTrack]._fileInfo == null) continue; NameValueCollection trackTags = Tagging.Analyze(_tracks[iTrack]._fileInfo); foreach (string key in trackTags.AllKeys) { diff --git a/CUETools/CUETools.TestCodecs/CUETools.TestCodecs.csproj b/CUETools/CUETools.TestCodecs/CUETools.TestCodecs.csproj index 849e7d5..c26e61f 100644 --- a/CUETools/CUETools.TestCodecs/CUETools.TestCodecs.csproj +++ b/CUETools/CUETools.TestCodecs/CUETools.TestCodecs.csproj @@ -54,6 +54,7 @@ + @@ -72,6 +73,10 @@ CUETools.Codecs.ALAC True + + {E70FA90A-7012-4A52-86B5-362B699D1540} + CUETools.Codecs.FLAC + {082D6B9E-326E-4D15-9798-EDAE9EDE70A6} CUETools.Codecs.FLAKE diff --git a/CUETools/CUETools.TestCodecs/FlacWriterTest.cs b/CUETools/CUETools.TestCodecs/FlacWriterTest.cs new file mode 100644 index 0000000..399f4e3 --- /dev/null +++ b/CUETools/CUETools.TestCodecs/FlacWriterTest.cs @@ -0,0 +1,70 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using CUETools.Codecs; +using CUETools.Codecs.FLAC; + +namespace CUETools.TestCodecs +{ + [TestClass()] + public class FlacWriterTest + { + private TestContext testContextInstance; + + /// + ///Gets or sets the test context which provides + ///information about and functionality for the current test run. + /// + public TestContext TestContext + { + get + { + return testContextInstance; + } + set + { + testContextInstance = value; + } + } + + /// + ///A test for FlacWriter (string, int, int, int, Stream) + /// + [TestMethod()] + public void ConstructorTest() + { + AudioBuffer buff = WAVReader.ReadAllSamples("test.wav", null); + FLACWriter target; + + target = new FLACWriter("flacwriter2.flac", buff.PCM); + target.Padding = 1; + target.BlockSize = 32; + //target.Vendor = "CUETools"; + //target.CreationTime = DateTime.Parse("15 Aug 1976"); + target.FinalSampleCount = buff.Length; + target.Write(buff); + target.Close(); + CollectionAssert.AreEqual(File.ReadAllBytes("flacwriter1.flac"), File.ReadAllBytes("flacwriter2.flac"), "flacwriter2.flac doesn't match."); + } + + [TestMethod()] + public void SeekTest() + { + var r = new FLACReader("test.flac", null); + var buff1 = new AudioBuffer(r, 16536); + var buff2 = new AudioBuffer(r, 16536); + r.Read(buff1, 7777); + r.Position = 0; + r.Read(buff2, 7777); + r.Close(); + Assert.AreEqual(buff1.ByteLength, buff2.ByteLength); + var bytes1 = new byte[buff1.ByteLength]; + var bytes2 = new byte[buff2.ByteLength]; + Array.Copy(buff1.Bytes, bytes1, buff1.ByteLength); + Array.Copy(buff2.Bytes, bytes2, buff2.ByteLength); + CollectionAssert.AreEqual(bytes1, bytes2); + } + } +} diff --git a/CUETools/CUETools.TestCodecs/FlakeWriterTest.cs b/CUETools/CUETools.TestCodecs/FlakeWriterTest.cs index bbc1b8b..d4525e1 100644 --- a/CUETools/CUETools.TestCodecs/FlakeWriterTest.cs +++ b/CUETools/CUETools.TestCodecs/FlakeWriterTest.cs @@ -149,5 +149,23 @@ namespace CUETools.TestCodecs lpc.compute_lpc_coefs(8, reff, lpcs); Assert.IsTrue(lpcs[7 * lpc.MAX_LPC_ORDER] < 3000); } - } + + [TestMethod()] + public void SeekTest() + { + var r = new FlakeReader("test.flac", null); + var buff1 = new AudioBuffer(r, 16536); + var buff2 = new AudioBuffer(r, 16536); + r.Read(buff1, 7777); + r.Position = 0; + r.Read(buff2, 7777); + r.Close(); + Assert.AreEqual(buff1.ByteLength, buff2.ByteLength); + var bytes1 = new byte[buff1.ByteLength]; + var bytes2 = new byte[buff2.ByteLength]; + Array.Copy(buff1.Bytes, bytes1, buff1.ByteLength); + Array.Copy(buff2.Bytes, bytes2, buff2.ByteLength); + CollectionAssert.AreEqual(bytes1, bytes2); + } + } } diff --git a/CUETools/CUETools.TestCodecs/flacwriter1.flac b/CUETools/CUETools.TestCodecs/flacwriter1.flac new file mode 100644 index 0000000000000000000000000000000000000000..6a91216877eba181b8810f0b37304e2ede64584d GIT binary patch literal 182 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 literal 0 HcmV?d00001 diff --git a/CUETools/CUETools.sln b/CUETools/CUETools.sln index f98986a..147d9c1 100644 --- a/CUETools/CUETools.sln +++ b/CUETools/CUETools.sln @@ -181,6 +181,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.TestHelpers", "..\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUETools.CLParity", "..\CUETools.CLParity\CUETools.CLParity.csproj", "{D41FEFF9-9D43-4049-BF9B-B13D9AC7E192}" EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "CUETools.CTDB.EACPlugin.Installer", "..\CUETools.CTDB.EACPlugin.Installer\CUETools.CTDB.EACPlugin.Installer.vdproj", "{0AC7691C-562A-4879-8A11-6C7890BF659B}" +EndProject Global GlobalSection(TestCaseManagementSettings) = postSolution CategoryFile = CUETools1.vsmdi @@ -220,7 +222,7 @@ Global {E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x64.ActiveCfg = Debug|x64 {E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x64.Build.0 = Debug|x64 {E70FA90A-7012-4A52-86B5-362B699D1540}.Debug|x86.ActiveCfg = Debug|x64 - {E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Any CPU.ActiveCfg = Release|x64 + {E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Any CPU.ActiveCfg = Release|Win32 {E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Mixed Platforms.ActiveCfg = Release|x64 {E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Mixed Platforms.Build.0 = Release|x64 {E70FA90A-7012-4A52-86B5-362B699D1540}.Release|Win32.ActiveCfg = Release|Win32 @@ -1051,6 +1053,16 @@ Global {D41FEFF9-9D43-4049-BF9B-B13D9AC7E192}.Release|Win32.ActiveCfg = Release|Any CPU {D41FEFF9-9D43-4049-BF9B-B13D9AC7E192}.Release|x64.ActiveCfg = Release|Any CPU {D41FEFF9-9D43-4049-BF9B-B13D9AC7E192}.Release|x86.ActiveCfg = Release|Any CPU + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Debug|Any CPU.ActiveCfg = Debug + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Debug|Mixed Platforms.ActiveCfg = Debug + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Debug|Win32.ActiveCfg = Debug + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Debug|x64.ActiveCfg = Debug + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Debug|x86.ActiveCfg = Debug + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|Any CPU.ActiveCfg = Release + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|Mixed Platforms.ActiveCfg = Release + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|Win32.ActiveCfg = Release + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|x64.ActiveCfg = Release + {0AC7691C-562A-4879-8A11-6C7890BF659B}.Release|x86.ActiveCfg = Release EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1102,5 +1114,6 @@ Global {9A0D1EB8-269E-4165-971C-541C96AA506F} = {5D823ABE-D280-4800-824C-2633CBAB2EA9} {0E404B8B-FF82-427F-ADE4-77B54A29219F} = {5D823ABE-D280-4800-824C-2633CBAB2EA9} {816D964C-9772-46C5-AF1D-49E8C78A1E7C} = {86BBE3FC-E4E5-4190-B675-C6745EAF4E64} + {0AC7691C-562A-4879-8A11-6C7890BF659B} = {86BBE3FC-E4E5-4190-B675-C6745EAF4E64} EndGlobalSection EndGlobal diff --git a/CUETools/Resources/ctdbheader.jpg b/CUETools/Resources/ctdbheader.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44e63252a08532aee9377d8c148d4422110b03f7 GIT binary patch literal 9529 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 TUOjYGs=es#02_Ye|9=wzJuU3z literal 0 HcmV?d00001 diff --git a/CUETools/localtestrun.testrunconfig b/CUETools/localtestrun.testrunconfig index 7417230..7112dc6 100644 --- a/CUETools/localtestrun.testrunconfig +++ b/CUETools/localtestrun.testrunconfig @@ -1,14 +1,27 @@ - - + + This is a default test run configuration for a local test run. - + + - + + - - + + + + +
+
+
+
+ + + + + \ No newline at end of file