├── .gitattributes ├── .gitignore ├── COPYING ├── COPYING.LESSER ├── Default.runsettings ├── Deployment ├── Bootstrapper │ ├── Bootstrapper.wixproj │ ├── Bundle.wxs │ ├── Logo.ico │ ├── Logo.png │ ├── LogoSide.png │ ├── Windows6.1-KB2819745-x64-MultiPkg.msu │ ├── Windows6.1-KB2819745-x86-MultiPkg.msu │ ├── vc_redist.x64.exe │ └── vc_redist.x86.exe ├── Setup │ ├── AppleExtension.wxs │ ├── FlacExtension.wxs │ ├── FlacFeature.wxs │ ├── Id3Extension.wxs │ ├── LameExtension.wxs │ ├── License.rtf │ ├── Logo.ico │ ├── Mp3Extension.wxs │ ├── Mp3Feature.wxs │ ├── Mp4Extension.wxs │ ├── Mp4Feature.wxs │ ├── Product.wxs │ ├── ReplayGainExtension.wxs │ ├── ReplayGainFeature.wxs │ ├── Setup.wixproj │ ├── VorbisExtension.wxs │ ├── VorbisFeature.wxs │ ├── WaveExtension.wxs │ └── WaveFeature.wxs └── Setup64 │ ├── AppleExtension.wxs │ ├── FlacExtension.wxs │ ├── FlacFeature.wxs │ ├── Id3Extension.wxs │ ├── LameExtension.wxs │ ├── License.rtf │ ├── Logo.ico │ ├── Mp3Extension.wxs │ ├── Mp3Feature.wxs │ ├── Mp4Extension.wxs │ ├── Mp4Feature.wxs │ ├── Product.wxs │ ├── ReplayGainExtension.wxs │ ├── ReplayGainFeature.wxs │ ├── Setup64.wixproj │ ├── VorbisExtension.wxs │ ├── VorbisFeature.wxs │ ├── WaveExtension.wxs │ └── WaveFeature.wxs ├── Extensions ├── PowerShellAudio.Extensions.Apple │ ├── AacSampleEncoder.cs │ ├── AacSampleEncoderInfo.cs │ ├── AudioBuffer.cs │ ├── AudioBufferList.cs │ ├── AudioStreamBasicDescription.cs │ ├── AudioStreamPacketDescription.cs │ ├── COPYING │ ├── COPYING.LESSER │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── GlobalSuppressions.cs │ ├── LosslessSampleDecoder.cs │ ├── LosslessSampleEncoder.cs │ ├── LosslessSampleEncoderInfo.cs │ ├── NativeAudioConverter.cs │ ├── NativeAudioConverterHandle.cs │ ├── NativeAudioFile.cs │ ├── NativeAudioFileHandle.cs │ ├── NativeExtendedAudioFile.cs │ ├── NativeExtendedAudioFileHandle.cs │ ├── PowerShellAudio.Extensions.Apple.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── SafeNativeMethods.cs │ └── StrongName.snk ├── PowerShellAudio.Extensions.Flac │ ├── COPYING │ ├── COPYING.LESSER │ ├── CoverArtToPictureBlockAdapter.cs │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── FlacAudioInfoDecoder.cs │ ├── FlacMetadataDecoder.cs │ ├── FlacMetadataEncoder.cs │ ├── FlacMetadataEncoderInfo.cs │ ├── FlacSampleDecoder.cs │ ├── FlacSampleEncoder.cs │ ├── FlacSampleEncoderInfo.cs │ ├── Frame.cs │ ├── FrameFooter.cs │ ├── FrameHeader.cs │ ├── IoCallbacks.cs │ ├── MetadataToVorbisCommentAdapter.cs │ ├── NativeMetadataBlock.cs │ ├── NativeMetadataBlockHandle.cs │ ├── NativeMetadataChain.cs │ ├── NativeMetadataChainHandle.cs │ ├── NativeMetadataIterator.cs │ ├── NativeMetadataIteratorHandle.cs │ ├── NativePictureBlock.cs │ ├── NativeSeekTableBlock.cs │ ├── NativeStreamAudioInfoDecoder.cs │ ├── NativeStreamDecoder.cs │ ├── NativeStreamDecoderHandle.cs │ ├── NativeStreamEncoder.cs │ ├── NativeStreamEncoderHandle.cs │ ├── NativeStreamMetadataDecoder.cs │ ├── NativeStreamSampleDecoder.cs │ ├── NativeVorbisCommentBlock.cs │ ├── Picture.cs │ ├── PictureMetadataBlock.cs │ ├── PowerShellAudio.Extensions.Flac.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── SafeNativeMethods.cs │ ├── StreamInfo.cs │ ├── StreamInfoMetadataBlock.cs │ ├── StrongName.snk │ ├── VorbisComment.cs │ ├── VorbisCommentEntry.cs │ ├── VorbisCommentMetadataBlock.cs │ ├── VorbisCommentToMetadataAdapter.cs │ ├── x64 │ │ └── libFLAC.dll │ └── x86 │ │ └── libFLAC.dll ├── PowerShellAudio.Extensions.Id3 │ ├── COPYING │ ├── COPYING.LESSER │ ├── CoverArtToFrameAdapter.cs │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── GlobalSuppressions.cs │ ├── ICSharpCode.SharpZipLib.dll │ ├── Id3Lib.dll │ ├── Id3MetadataDecoder.cs │ ├── Id3MetadataEncoder.cs │ ├── Id3MetadataEncoderInfo.cs │ ├── MetadataToTagModelAdapter.cs │ ├── PowerShellAudio.Extensions.Id3.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── SoundCheckFrame.cs │ ├── StrongName.snk │ ├── TagModelToMetadataAdapter.cs │ ├── TdatFrame.cs │ └── TrckFrame.cs ├── PowerShellAudio.Extensions.Lame │ ├── COPYING │ ├── COPYING.LESSER │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── GlobalSuppressions.cs │ ├── LameSampleEncoder.cs │ ├── LameSampleEncoderInfo.cs │ ├── NativeEncoder.cs │ ├── NativeEncoderHandle.cs │ ├── PowerShellAudio.Extensions.Lame.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── SafeNativeMethods.cs │ ├── StrongName.snk │ ├── x64 │ │ └── libmp3lame.dll │ └── x86 │ │ └── libmp3lame.dll ├── PowerShellAudio.Extensions.Mp3 │ ├── COPYING │ ├── COPYING.LESSER │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── ExtensionMethods.cs │ ├── FrameHeader.cs │ ├── FrameReader.cs │ ├── GlobalSuppressions.cs │ ├── Mp3AudioInfoDecoder.cs │ ├── PowerShellAudio.Extensions.Mp3.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── StrongName.snk │ └── XingHeader.cs ├── PowerShellAudio.Extensions.Mp4 │ ├── AlacAtom.cs │ ├── AtomInfo.cs │ ├── AtomToMetadataAdapter.cs │ ├── COPYING │ ├── COPYING.LESSER │ ├── CovrAtom.cs │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── EsdsAtom.cs │ ├── ExtensionMethods.cs │ ├── GlobalSuppressions.cs │ ├── ItunesMetadataDecoder.cs │ ├── ItunesMetadataEncoder.cs │ ├── ItunesMetadataEncoderInfo.cs │ ├── M4AAudioInfoDecoder.cs │ ├── MetadataToAtomAdapter.cs │ ├── Mp4.cs │ ├── PowerShellAudio.Extensions.Mp4.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── ReverseDnsAtom.cs │ ├── SoundCheckAtom.cs │ ├── StrongName.snk │ ├── SttsAtom.cs │ ├── TextAtom.cs │ ├── TrackNumberAtom.cs │ └── WritableAtom.cs ├── PowerShellAudio.Extensions.ReplayGain │ ├── AlbumComponent.cs │ ├── ButterworthFilter.cs │ ├── COPYING │ ├── COPYING.LESSER │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── EqualLoudnessFilter.cs │ ├── GlobalSuppressions.cs │ ├── IirFilter.cs │ ├── NativeR128Analyzer.cs │ ├── NativeR128GroupState.cs │ ├── NativeStateHandle.cs │ ├── PeakDetector.cs │ ├── PowerShellAudio.Extensions.ReplayGain.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── ReplayGain2Analyzer.cs │ ├── ReplayGain2SampleAnalyzerInfo.cs │ ├── ReplayGainAnalyzer.cs │ ├── ReplayGainFilter.cs │ ├── ReplayGainSampleAnalyzerInfo.cs │ ├── SafeNativeMethods.cs │ ├── SampleCountFilter.cs │ ├── SampleRateConverter.cs │ ├── StrongName.snk │ ├── WindowSelector.cs │ ├── YuleWalkFilter.cs │ ├── packages.config │ ├── x64 │ │ └── ebur128.dll │ └── x86 │ │ └── ebur128.dll ├── PowerShellAudio.Extensions.Vorbis │ ├── COPYING │ ├── COPYING.LESSER │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── ExtensionMethods.cs │ ├── GlobalSuppressions.cs │ ├── MetadataBlockPicture.cs │ ├── MetadataToVorbisCommentAdapter.cs │ ├── NativeOggStream.cs │ ├── NativeOggSync.cs │ ├── NativeVorbisDecoder.cs │ ├── NativeVorbisEncoder.cs │ ├── OggPackBuffer.cs │ ├── OggPacket.cs │ ├── OggPage.cs │ ├── OggStreamState.cs │ ├── OggSyncState.cs │ ├── PowerShellAudio.Extensions.Vorbis.csproj │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── SafeNativeMethods.cs │ ├── StrongName.snk │ ├── VorbisAudioInfoDecoder.cs │ ├── VorbisBlock.cs │ ├── VorbisComment.cs │ ├── VorbisCommentToMetadataAdapter.cs │ ├── VorbisDspState.cs │ ├── VorbisInfo.cs │ ├── VorbisMetadataDecoder.cs │ ├── VorbisMetadataEncoder.cs │ ├── VorbisMetadataEncoderInfo.cs │ ├── VorbisSampleEncoder.cs │ ├── VorbisSampleEncoderInfo.cs │ ├── x64 │ │ ├── libogg.dll │ │ └── libvorbis.dll │ └── x86 │ │ ├── libogg.dll │ │ └── libvorbis.dll └── PowerShellAudio.Extensions.Wave │ ├── COPYING │ ├── COPYING.LESSER │ ├── CustomDictionary.xml │ ├── CustomRules.ruleset │ ├── Enumerations.cs │ ├── GlobalSuppressions.cs │ ├── PowerShellAudio.Extensions.Wave.csproj │ ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx │ ├── RiffReader.cs │ ├── RiffWriter.cs │ ├── StrongName.snk │ ├── WaveAudioInfoDecoder.cs │ ├── WaveSampleDecoder.cs │ ├── WaveSampleEncoder.cs │ └── WaveSampleEncoderInfo.cs ├── PowerShellAudio.Api ├── AnalyzableAudioFile.cs ├── AudioFile.cs ├── COPYING ├── COPYING.LESSER ├── CustomDictionary.xml ├── CustomRules.ruleset ├── ExportableAudioFile.cs ├── ExtensionMethods.cs ├── GlobalSuppressions.cs ├── PowerShellAudio.Api.csproj ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── StrongName.snk └── TaggedAudioFile.cs ├── PowerShellAudio.Commands ├── COPYING ├── COPYING.LESSER ├── ClearAudioFileMetadataCommand.cs ├── ConvertAudioCoverArtCommand.cs ├── ConvertAudioFileCoverArtCommand.cs ├── CopyAudioFileCommand.cs ├── CustomDictionary.xml ├── CustomRules.ruleset ├── ExportAudioCoverArtCommand.cs ├── ExportAudioFileCommand.cs ├── ExportAudioFileCoverArtCommand.cs ├── ExtensionMethods.cs ├── GetAudioAnalyzerInfoCommand.cs ├── GetAudioCoverArtCommand.cs ├── GetAudioEncoderInfoCommand.cs ├── GetAudioFileCommand.cs ├── GetAudioFileCoverArtCommand.cs ├── GetAudioFileMetadataCommand.cs ├── GetAudioInfoCommand.cs ├── GetAudioMetadataEncoderInfoCommand.cs ├── HashTableToMetadataDictionaryAdapter.cs ├── HashTableToSettingsDictionaryAdapter.cs ├── MeasureAudioFileCommand.cs ├── MetadataSubstituter.cs ├── PowerShellAudio.Commands.csproj ├── PowerShellAudio.Help.pshproj ├── PowerShellAudio.psd1 ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── RenameAudioFileCommand.cs ├── SaveAudioFileMetadataCommand.cs ├── SetAudioFileCoverArtCommand.cs ├── SetAudioFileMetadataCommand.cs ├── StrongName.snk └── en-US │ └── PowerShellAudio.Commands.dll-Help.xml ├── PowerShellAudio.Common ├── AudioInfo.cs ├── COPYING ├── COPYING.LESSER ├── ConvertibleCoverArt.cs ├── CoverArt.cs ├── CustomDictionary.xml ├── CustomRules.ruleset ├── ExtensionInitializationException.cs ├── GroupToken.cs ├── InvalidSettingException.cs ├── MetadataDictionary.cs ├── PowerShellAudio.Common.csproj ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── SampleCollection.cs ├── SampleCollectionFactory.cs ├── SettingsDictionary.cs ├── StrongName.snk ├── UnsupportedAudioException.cs └── UnsupportedCoverArtException.cs ├── PowerShellAudio.Extensibility ├── AudioInfoDecoderContract.cs ├── AudioInfoDecoderExportAttribute.cs ├── COPYING ├── COPYING.LESSER ├── CustomRules.ruleset ├── ExtensionContainer.cs ├── ExtensionProvider.cs ├── FinalSampleConsumerContract.cs ├── IAudioInfoDecoder.cs ├── IFinalSampleConsumer.cs ├── IMetadataDecoder.cs ├── IMetadataEncoder.cs ├── ISampleAnalyzer.cs ├── ISampleConsumer.cs ├── ISampleDecoder.cs ├── ISampleEncoder.cs ├── ISampleFilter.cs ├── MetadataDecoderContract.cs ├── MetadataDecoderExportAttribute.cs ├── MetadataEncoderContract.cs ├── MetadataEncoderExportAttribute.cs ├── MetadataEncoderInfo.cs ├── MetadataEncoderInfoContract.cs ├── PowerShellAudio.Extensibility.csproj ├── Properties │ └── AssemblyInfo.cs ├── SampleAnalyzerContract.cs ├── SampleAnalyzerExportAttribute.cs ├── SampleAnalyzerInfo.cs ├── SampleAnalyzerInfoContract.cs ├── SampleConsumerContract.cs ├── SampleDecoderContract.cs ├── SampleDecoderExportAttribute.cs ├── SampleEncoderContract.cs ├── SampleEncoderExportAttribute.cs ├── SampleEncoderInfo.cs ├── SampleEncoderInfoContract.cs ├── SampleFilterContract.cs ├── SampleFilterExportAttribute.cs └── StrongName.snk ├── PowerShellAudio.UnitTests ├── AudioFileAnalyzeDataSource.csv ├── AudioFileExportDataSource.csv ├── AudioFileSaveMetadataDataSource.csv ├── COPYING ├── COPYING.LESSER ├── ExtensionTests.cs ├── PowerShellAudio.UnitTests.csproj ├── Properties │ └── AssemblyInfo.cs ├── StrongName.snk └── TestFiles │ ├── AAC 153 kbps 44100Hz Stereo.m4a │ ├── ALAC 16-bit 44100Hz Mono.m4a │ ├── ALAC 16-bit 44100Hz Stereo.m4a │ ├── ALAC 16-bit 48000Hz Stereo.m4a │ ├── ALAC 24-bit 96000Hz Stereo.m4a │ ├── FLAC 16-bit 44100Hz Mono.flac │ ├── FLAC 16-bit 44100Hz Stereo.flac │ ├── FLAC 16-bit 48000Hz Stereo.flac │ ├── FLAC 24-bit 96000Hz Stereo.flac │ ├── FLAC 8-bit 8000Hz Stereo.flac │ ├── LPCM 16-bit 44100Hz Mono.wav │ ├── LPCM 16-bit 44100Hz Stereo.wav │ ├── LPCM 16-bit 48000Hz Stereo.wav │ ├── LPCM 24-bit 96000Hz Stereo.wav │ ├── LPCM 8-bit 8000Hz Stereo.wav │ ├── MP3 213kbps 44100Hz Stereo.mp3 │ ├── TestCover.jpg │ ├── TestCover.png │ └── Vorbis 160kbps 44100Hz Stereo.ogg ├── PowerShellAudio.sln ├── PowerShellAudio.sln.DotSettings ├── README.md └── packages ├── Microsoft.Tpl.Dataflow.4.5.23 ├── License-Stable.rtf ├── Microsoft.Tpl.Dataflow.4.5.23.nupkg └── lib │ ├── portable-net45+win8+wp8+wpa81 │ ├── System.Threading.Tasks.Dataflow.dll │ └── system.threading.tasks.dataflow.xml │ └── portable-net45+win8+wpa81 │ ├── System.Threading.Tasks.Dataflow.dll │ └── system.threading.tasks.dataflow.xml └── repositories.config /Default.runsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | .\TestResults 7 | 8 | 9 | Framework45 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | .*CPPUnitTestFramework.* 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | True 35 | false 36 | False 37 | True 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Deployment/Bootstrapper/Logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/Logo.ico -------------------------------------------------------------------------------- /Deployment/Bootstrapper/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/Logo.png -------------------------------------------------------------------------------- /Deployment/Bootstrapper/LogoSide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/LogoSide.png -------------------------------------------------------------------------------- /Deployment/Bootstrapper/Windows6.1-KB2819745-x64-MultiPkg.msu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/Windows6.1-KB2819745-x64-MultiPkg.msu -------------------------------------------------------------------------------- /Deployment/Bootstrapper/Windows6.1-KB2819745-x86-MultiPkg.msu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/Windows6.1-KB2819745-x86-MultiPkg.msu -------------------------------------------------------------------------------- /Deployment/Bootstrapper/vc_redist.x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/vc_redist.x64.exe -------------------------------------------------------------------------------- /Deployment/Bootstrapper/vc_redist.x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Bootstrapper/vc_redist.x86.exe -------------------------------------------------------------------------------- /Deployment/Setup/FlacFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Deployment/Setup/Logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Setup/Logo.ico -------------------------------------------------------------------------------- /Deployment/Setup/Mp3Extension.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Deployment/Setup/Mp3Feature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Deployment/Setup/Mp4Extension.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Deployment/Setup/Mp4Feature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Deployment/Setup/ReplayGainFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Deployment/Setup/VorbisFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Deployment/Setup/WaveFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Deployment/Setup64/FlacFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Deployment/Setup64/Logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Deployment/Setup64/Logo.ico -------------------------------------------------------------------------------- /Deployment/Setup64/Mp3Extension.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Deployment/Setup64/Mp3Feature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Deployment/Setup64/Mp4Feature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Deployment/Setup64/ReplayGainFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Deployment/Setup64/VorbisFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Deployment/Setup64/WaveFeature.wxs: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/AudioBuffer.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Runtime.InteropServices; 20 | 21 | #pragma warning disable 0649 22 | 23 | namespace PowerShellAudio.Extensions.Apple 24 | { 25 | struct AudioBuffer : IDisposable 26 | { 27 | internal uint NumberChannels; 28 | 29 | internal uint DataByteSize; 30 | 31 | internal IntPtr Data; 32 | 33 | public void Dispose() 34 | { 35 | Marshal.FreeHGlobal(Data); 36 | } 37 | } 38 | } 39 | 40 | #pragma warning restore 0649 41 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/AudioBufferList.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Runtime.InteropServices; 19 | 20 | #pragma warning disable 0649 21 | 22 | namespace PowerShellAudio.Extensions.Apple 23 | { 24 | struct AudioBufferList 25 | { 26 | internal uint NumberBuffers; 27 | 28 | [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] 29 | internal AudioBuffer[] Buffers; 30 | } 31 | } 32 | 33 | #pragma warning restore 0649 34 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/AudioStreamBasicDescription.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | namespace PowerShellAudio.Extensions.Apple 21 | { 22 | struct AudioStreamBasicDescription 23 | { 24 | internal double SampleRate; 25 | 26 | internal AudioFormat AudioFormat; 27 | 28 | internal AudioFormatFlags Flags; 29 | 30 | internal uint BytesPerPacket; 31 | 32 | internal uint FramesPerPacket; 33 | 34 | internal uint BytesPerFrame; 35 | 36 | internal uint ChannelsPerFrame; 37 | 38 | internal uint BitsPerChannel; 39 | 40 | internal uint Reserved; 41 | } 42 | } 43 | 44 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/AudioStreamPacketDescription.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | namespace PowerShellAudio.Extensions.Apple 21 | { 22 | struct AudioStreamPacketDescription 23 | { 24 | internal long StartOffset; 25 | 26 | internal uint VariableFramesInPacket; 27 | 28 | internal uint DataByteSize; 29 | } 30 | } 31 | 32 | #pragma warning restore 0649 33 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | aac 6 | 7 | 8 | bitrate 9 | controlmode 10 | vbrquality 11 | 12 | 13 | 14 | 15 | AAC 16 | 17 | 18 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Apple/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/NativeAudioConverterHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Apple 21 | { 22 | class NativeAudioConverterHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeAudioConverterHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.AudioConverterDispose(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/NativeAudioFileHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Apple 21 | { 22 | class NativeAudioFileHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeAudioFileHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.AudioFileClose(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/NativeExtendedAudioFileHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Apple 21 | { 22 | class NativeExtendedAudioFileHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeExtendedAudioFileHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.ExtAudioFileDispose(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Apple")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("43781862-b379-4e9f-b033-efeb494a04f4")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.4.0.0")] 38 | [assembly: AssemblyFileVersion("1.4.0.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Apple/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Apple/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/CoverArtToPictureBlockAdapter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | class CoverArtToPictureBlockAdapter : NativePictureBlock 23 | { 24 | internal CoverArtToPictureBlockAdapter(CoverArt coverArt) 25 | { 26 | Contract.Requires(coverArt != null); 27 | 28 | SetData(coverArt.GetData()); 29 | SetType(PictureType.CoverFront); 30 | SetMimeType(coverArt.MimeType); 31 | SetWidth(coverArt.Width); 32 | SetHeight(coverArt.Height); 33 | SetColorDepth(coverArt.ColorDepth); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | flac 6 | vorbis 7 | 8 | 9 | compressionlevel 10 | seekpointinterval 11 | 12 | 13 | 14 | 15 | FLAC 16 | 17 | 18 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/Frame.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | using System; 21 | 22 | namespace PowerShellAudio.Extensions.Flac 23 | { 24 | struct Frame 25 | { 26 | internal FrameHeader Header; 27 | 28 | internal IntPtr SubFrames; 29 | 30 | internal FrameFooter Footer; 31 | } 32 | } 33 | 34 | #pragma warning restore 0649 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/FrameFooter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | struct FrameFooter 23 | { 24 | internal ushort Crc; 25 | } 26 | } 27 | 28 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/IoCallbacks.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | struct IoCallbacks 23 | { 24 | internal SafeNativeMethods.IOCallbacksReadCallback Read; 25 | 26 | internal SafeNativeMethods.IOCallbacksWriteCallback Write; 27 | 28 | internal SafeNativeMethods.IOCallbacksSeekCallback Seek; 29 | 30 | internal SafeNativeMethods.IOCallbacksTellCallback Tell; 31 | 32 | internal SafeNativeMethods.IOCallbacksEofCallback Eof; 33 | 34 | internal SafeNativeMethods.IOCallbacksCloseCallback Close; 35 | } 36 | } 37 | 38 | #pragma warning restore 0649 39 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/NativeMetadataBlockHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | class NativeMetadataBlockHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | bool _suppressDisposal; 25 | 26 | NativeMetadataBlockHandle() 27 | : base(true) 28 | { } 29 | 30 | protected override bool ReleaseHandle() 31 | { 32 | if (!_suppressDisposal) 33 | { 34 | SafeNativeMethods.MetadataBlockDelete(handle); 35 | _suppressDisposal = true; 36 | } 37 | return true; 38 | } 39 | 40 | internal void SuppressDisposal() 41 | { 42 | _suppressDisposal = true; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/NativeMetadataChainHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | class NativeMetadataChainHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeMetadataChainHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.MetadataChainDelete(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/NativeMetadataIteratorHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | class NativeMetadataIteratorHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeMetadataIteratorHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.MetadataIteratorDelete(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/NativeSeekTableBlock.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using PowerShellAudio.Extensions.Flac.Properties; 19 | using System.Globalization; 20 | using System.IO; 21 | 22 | namespace PowerShellAudio.Extensions.Flac 23 | { 24 | class NativeSeekTableBlock : NativeMetadataBlock 25 | { 26 | internal NativeSeekTableBlock(int count, long sampleCount) 27 | : base(MetadataType.SeekTable) 28 | { 29 | if (!SafeNativeMethods.SeekTableTemplateAppend(Handle, (uint)count, (ulong)sampleCount)) 30 | throw new IOException(string.Format(CultureInfo.CurrentCulture, 31 | Resources.NativeSeekTableBlockMemoryError)); 32 | 33 | if (!SafeNativeMethods.SeekTableTemplateSort(Handle, true)) 34 | throw new IOException(string.Format(CultureInfo.CurrentCulture, 35 | Resources.NativeSeekTableBlockMemoryError)); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/NativeStreamDecoderHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | class NativeStreamDecoderHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeStreamDecoderHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.StreamDecoderDelete(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/NativeStreamEncoderHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | class NativeStreamEncoderHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeStreamEncoderHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.StreamEncoderDelete(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/Picture.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | using System; 21 | 22 | namespace PowerShellAudio.Extensions.Flac 23 | { 24 | struct Picture 25 | { 26 | internal PictureType Type; 27 | 28 | internal IntPtr MimeType; 29 | 30 | internal IntPtr Description; 31 | 32 | internal uint Width; 33 | 34 | internal uint Height; 35 | 36 | internal uint ColorDepth; 37 | 38 | internal uint Colors; 39 | 40 | internal uint DataLength; 41 | 42 | internal IntPtr Data; 43 | } 44 | } 45 | 46 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/PictureMetadataBlock.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.CodeAnalysis; 19 | using System.Runtime.InteropServices; 20 | 21 | namespace PowerShellAudio.Extensions.Flac 22 | { 23 | [StructLayout(LayoutKind.Explicit)] 24 | struct PictureMetadataBlock 25 | { 26 | [FieldOffset(0), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 27 | internal MetadataType Type; 28 | 29 | [FieldOffset(4), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 30 | internal bool IsLast; 31 | 32 | [FieldOffset(8), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 33 | internal uint Length; 34 | 35 | [FieldOffset(16), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 36 | internal Picture Picture; 37 | } 38 | } -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Flac")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("528096fd-ebda-4a41-bc03-3079d99b765a")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.2.1.0")] 38 | [assembly: AssemblyFileVersion("1.2.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/StreamInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | using System.Runtime.InteropServices; 21 | 22 | namespace PowerShellAudio.Extensions.Flac 23 | { 24 | struct StreamInfo 25 | { 26 | internal uint MinBlockSize; 27 | 28 | internal uint MaxBlockSize; 29 | 30 | internal uint MinFrameSize; 31 | 32 | internal uint MaxFrameSize; 33 | 34 | internal uint SampleRate; 35 | 36 | internal uint Channels; 37 | 38 | internal uint BitsPerSample; 39 | 40 | internal ulong TotalSamples; 41 | 42 | [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] 43 | internal byte[] Md5Sum; 44 | } 45 | } 46 | 47 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/StreamInfoMetadataBlock.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | namespace PowerShellAudio.Extensions.Flac 21 | { 22 | struct StreamInfoMetadataBlock 23 | { 24 | internal MetadataType Type; 25 | 26 | internal bool IsLast; 27 | 28 | internal uint Length; 29 | 30 | internal StreamInfo StreamInfo; 31 | } 32 | } 33 | 34 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Flac/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/VorbisComment.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | using System; 21 | 22 | namespace PowerShellAudio.Extensions.Flac 23 | { 24 | struct VorbisComment 25 | { 26 | internal VorbisCommentEntry Vendor; 27 | 28 | internal uint Count; 29 | 30 | // In-line array of VorbisCommentEntry structures can't be marshaled automatically: 31 | internal IntPtr Comments; 32 | } 33 | } 34 | 35 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/VorbisCommentEntry.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | #pragma warning disable 0649 19 | 20 | using System; 21 | 22 | namespace PowerShellAudio.Extensions.Flac 23 | { 24 | struct VorbisCommentEntry 25 | { 26 | internal uint Length; 27 | 28 | internal IntPtr Entry; 29 | } 30 | } 31 | 32 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/VorbisCommentMetadataBlock.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.CodeAnalysis; 19 | using System.Runtime.InteropServices; 20 | 21 | namespace PowerShellAudio.Extensions.Flac 22 | { 23 | [StructLayout(LayoutKind.Explicit)] 24 | struct VorbisCommentMetadataBlock 25 | { 26 | [FieldOffset(0), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 27 | internal MetadataType Type; 28 | 29 | [FieldOffset(4), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 30 | internal bool IsLast; 31 | 32 | [FieldOffset(8), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 33 | internal uint Length; 34 | 35 | [FieldOffset(16), SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "P/Invoke signature")] 36 | internal VorbisComment VorbisComment; 37 | } 38 | } -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/x64/libFLAC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Flac/x64/libFLAC.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Flac/x86/libFLAC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Flac/x86/libFLAC.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/CoverArtToFrameAdapter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Id3Lib.Frames; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio.Extensions.Id3 22 | { 23 | class CoverArtToFrameAdapter : FramePicture 24 | { 25 | internal CoverArtToFrameAdapter(CoverArt coverArt) 26 | : base("APIC") 27 | { 28 | Contract.Requires(coverArt != null); 29 | Contract.Ensures(PictureType == PictureTypeCode.CoverFront); 30 | Contract.Ensures(!string.IsNullOrEmpty(Mime)); 31 | Contract.Ensures(PictureData != null); 32 | Contract.Ensures(PictureData.Length > 0); 33 | 34 | PictureType = PictureTypeCode.CoverFront; 35 | Mime = coverArt.MimeType; 36 | PictureData = coverArt.GetData(); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | addsoundcheck 6 | paddingsize 7 | 8 | 9 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Id3/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/ICSharpCode.SharpZipLib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Id3/ICSharpCode.SharpZipLib.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/Id3Lib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Id3/Id3Lib.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/Id3MetadataDecoder.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Id3Lib; 19 | using Id3Lib.Exceptions; 20 | using System.Diagnostics.Contracts; 21 | using System.IO; 22 | 23 | namespace PowerShellAudio.Extensions.Id3 24 | { 25 | [MetadataDecoderExport(".mp3")] 26 | public class Id3MetadataDecoder : IMetadataDecoder 27 | { 28 | public MetadataDictionary ReadMetadata(Stream stream) 29 | { 30 | Contract.Ensures(Contract.Result() != null); 31 | 32 | try 33 | { 34 | return new TagModelToMetadataAdapter(TagManager.Deserialize(stream)); 35 | } 36 | catch (TagNotFoundException) 37 | { 38 | return new MetadataDictionary(); 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Id3")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("496693f2-3dee-4615-8af5-cb918c9c63fd")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.2.1.0")] 38 | [assembly: AssemblyFileVersion("1.2.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-CA")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Id3/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Id3/TrckFrame.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Id3Lib.Frames; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio.Extensions.Id3 22 | { 23 | class TrckFrame : FrameText 24 | { 25 | string _trackNumber; 26 | string _trackCount; 27 | 28 | internal string TrackNumber 29 | { 30 | set 31 | { 32 | Contract.Requires(!string.IsNullOrEmpty(value)); 33 | 34 | _trackNumber = value; 35 | Text = GetText(); 36 | } 37 | } 38 | 39 | internal string TrackCount 40 | { 41 | set 42 | { 43 | Contract.Requires(!string.IsNullOrEmpty(value)); 44 | 45 | _trackCount = value; 46 | Text = GetText(); 47 | } 48 | } 49 | 50 | internal TrckFrame() 51 | : base("TRCK") 52 | { } 53 | 54 | string GetText() 55 | { 56 | return !string.IsNullOrEmpty(_trackCount) ? _trackNumber + '/' + _trackCount : _trackNumber; 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | libmp3lame 6 | 7 | 8 | applygain 9 | bitrate 10 | forcecbr 11 | vbrquality 12 | 13 | 14 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/Enumerations.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | namespace PowerShellAudio.Extensions.Lame 19 | { 20 | internal enum VbrMode 21 | { 22 | Off, 23 | Mt, 24 | Rh, 25 | Abr, 26 | Mtrh 27 | }; 28 | } -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Lame/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/NativeEncoderHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.Lame 21 | { 22 | class NativeEncoderHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeEncoderHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.Close(handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Lame")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("69b230a0-e6ce-4ad8-8c59-c1dd8a3ef151")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.3.1.0")] 38 | [assembly: AssemblyFileVersion("1.3.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Lame/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/x64/libmp3lame.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Lame/x64/libmp3lame.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Lame/x86/libmp3lame.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Lame/x86/libmp3lame.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | mp 6 | 7 | 8 | 9 | 10 | MP 11 | 12 | 13 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | using System.IO; 20 | 21 | namespace PowerShellAudio.Extensions.Mp3 22 | { 23 | static class ExtensionMethods 24 | { 25 | internal static int ReadInt32SyncSafe(this BinaryReader reader) 26 | { 27 | Contract.Requires(reader != null); 28 | 29 | return (reader.ReadByte() << 21) + (reader.ReadByte() << 14) + (reader.ReadByte() << 7) + reader.ReadByte(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Mp3/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Mp3")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("a06c3acc-90ad-4915-a007-0149ca3d2873")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.0.3.0")] 38 | [assembly: AssemblyFileVersion("1.0.3.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Mp3/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp3/XingHeader.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | namespace PowerShellAudio.Extensions.Mp3 19 | { 20 | struct XingHeader 21 | { 22 | internal uint FrameCount; 23 | 24 | internal uint ByteCount; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/AlacAtom.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio.Extensions.Mp4 22 | { 23 | class AlacAtom 24 | { 25 | internal byte BitsPerSample { get; } 26 | 27 | internal byte Channels { get; } 28 | 29 | internal uint SampleRate { get; } 30 | 31 | internal AlacAtom(byte[] data) 32 | { 33 | Contract.Requires(data != null); 34 | Contract.Requires(data.Length >= 72); 35 | 36 | BitsPerSample = data[53]; 37 | 38 | Channels = data[57]; 39 | 40 | Array.Reverse(data, 68, 4); 41 | SampleRate = BitConverter.ToUInt32(data, 68); 42 | } 43 | 44 | [ContractInvariantMethod] 45 | void ObjectInvariant() 46 | { 47 | Contract.Invariant(BitsPerSample > 0); 48 | Contract.Invariant(Channels > 0); 49 | Contract.Invariant(SampleRate > 0); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/AtomInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio.Extensions.Mp4 21 | { 22 | class AtomInfo 23 | { 24 | internal uint Start { get; } 25 | 26 | internal uint Size { get; } 27 | 28 | internal uint End => Start + Size; 29 | 30 | internal string FourCC { get; } 31 | 32 | internal AtomInfo(uint start, uint size, string fourCC) 33 | { 34 | Contract.Requires(!string.IsNullOrEmpty(fourCC)); 35 | Contract.Requires(fourCC.Length == 4); 36 | Contract.Ensures(Start == start); 37 | Contract.Ensures(Size == size); 38 | Contract.Ensures(FourCC == fourCC); 39 | 40 | Start = start; 41 | Size = size; 42 | FourCC = fourCC; 43 | } 44 | 45 | [ContractInvariantMethod] 46 | void ObjectInvariant() 47 | { 48 | Contract.Invariant(!string.IsNullOrEmpty(FourCC)); 49 | Contract.Invariant(FourCC.Length == 4); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | itunes 6 | mp 7 | 8 | 9 | 10 | addsoundcheck 11 | 12 | 13 | 14 | MP 15 | 16 | 17 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/Enumerations.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | namespace PowerShellAudio.Extensions.Mp4 19 | { 20 | internal enum CoverType : uint 21 | { 22 | Jpeg = 0xd, 23 | Png = 0xe 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Mp4/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/ItunesMetadataDecoder.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.IO; 19 | 20 | namespace PowerShellAudio.Extensions.Mp4 21 | { 22 | [MetadataDecoderExport(".m4a")] 23 | public class ItunesMetadataDecoder : IMetadataDecoder 24 | { 25 | public MetadataDictionary ReadMetadata(Stream stream) 26 | { 27 | var mp4 = new Mp4(stream); 28 | mp4.DescendToAtom("moov", "udta", "meta", "ilst"); 29 | 30 | return new AtomToMetadataAdapter(mp4, mp4.GetChildAtomInfo()); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Mp4")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("bca0aff5-8bd8-4191-bd48-0faaf155da3f")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.1.1.0")] 38 | [assembly: AssemblyFileVersion("1.1.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Mp4/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/SttsAtom.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio.Extensions.Mp4 22 | { 23 | class SttsAtom 24 | { 25 | internal uint PacketCount { get; private set; } 26 | 27 | internal uint PacketSize { get; private set; } 28 | 29 | internal SttsAtom(byte[] data) 30 | { 31 | Contract.Requires(data != null); 32 | Contract.Requires(data.Length >= 24); 33 | 34 | Array.Reverse(data, 16, 4); 35 | PacketCount = BitConverter.ToUInt32(data, 16); 36 | 37 | Array.Reverse(data, 20, 4); 38 | PacketSize = BitConverter.ToUInt32(data, 20); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Mp4/WritableAtom.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | namespace PowerShellAudio.Extensions.Mp4 19 | { 20 | abstract class WritableAtom 21 | { 22 | internal abstract byte[] GetBytes(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | libebur 6 | ebur 7 | 8 | 9 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/Enumerations.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | namespace PowerShellAudio.Extensions.ReplayGain 21 | { 22 | enum Ebur128Error 23 | { 24 | Success, 25 | NoMemory, 26 | InvalidMode, 27 | InvalidChannelIndex, 28 | NoChange 29 | }; 30 | 31 | [Flags] 32 | internal enum Mode 33 | { 34 | Momentary = 0x1, // (1 << 0) 35 | ShortTerm = 0x3, // (1 << 1) | Mode.Momentary 36 | Global = 0x5, // (1 << 2) | Mode.Momentary 37 | Range = 0xb, // (1 << 3) | Mode.ShortTerm 38 | SamplePeak = 0x11, // (1 << 4) | Mode.Momentary 39 | TruePeak = 0x31, // (1 << 5) | Mode.SamplePeak 40 | Histogram = 0x40 // (1 << 6) 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.ReplayGain/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/NativeR128GroupState.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Collections.Concurrent; 19 | using System.Diagnostics.Contracts; 20 | using System.Threading; 21 | 22 | namespace PowerShellAudio.Extensions.ReplayGain 23 | { 24 | class NativeR128GroupState 25 | { 26 | int _membersDisposed; 27 | 28 | internal int MembersDisposed => _membersDisposed; 29 | 30 | internal ConcurrentBag Handles { get; } 31 | 32 | internal NativeR128GroupState() 33 | { 34 | Contract.Ensures(Handles != null); 35 | 36 | Handles = new ConcurrentBag(); 37 | } 38 | 39 | internal void MemberDisposed() 40 | { 41 | Contract.Ensures(_membersDisposed == Contract.OldValue(_membersDisposed) + 1); 42 | 43 | Interlocked.Increment(ref _membersDisposed); 44 | } 45 | 46 | [ContractInvariantMethod] 47 | void ObjectInvariant() 48 | { 49 | Contract.Invariant(_membersDisposed >= 0); 50 | Contract.Invariant(Handles != null); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/NativeStateHandle.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using Microsoft.Win32.SafeHandles; 19 | 20 | namespace PowerShellAudio.Extensions.ReplayGain 21 | { 22 | class NativeStateHandle : SafeHandleZeroOrMinusOneIsInvalid 23 | { 24 | NativeStateHandle() 25 | : base(true) 26 | { } 27 | 28 | protected override bool ReleaseHandle() 29 | { 30 | SafeNativeMethods.Destroy(ref handle); 31 | return true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.ReplayGain")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("7243f907-bb36-46c6-a476-ceabc4e405f6")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.2.1.0")] 38 | [assembly: AssemblyFileVersion("1.2.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/ReplayGainSampleAnalyzerInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio.Extensions.ReplayGain 21 | { 22 | class ReplayGainSampleAnalyzerInfo : SampleAnalyzerInfo 23 | { 24 | public override string Name 25 | { 26 | get 27 | { 28 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 29 | 30 | return "ReplayGain"; 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.ReplayGain/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/x64/ebur128.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.ReplayGain/x64/ebur128.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.ReplayGain/x86/ebur128.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.ReplayGain/x86/ebur128.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | libvorbis 6 | Ogg 7 | Vorbis 8 | 9 | 10 | bitrate 11 | controlmode 12 | serialnumber 13 | vbrquality 14 | 15 | 16 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/Enumerations.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | namespace PowerShellAudio.Extensions.Vorbis 19 | { 20 | internal enum Result 21 | { 22 | OkMoreAvailable = 1, 23 | Ok = 0, 24 | FaultError = -129, 25 | NotImplementedError = -130, 26 | InValueError = -131, 27 | NotVorbisError = -132, 28 | BadHeaderError = -133 29 | }; 30 | 31 | internal enum PictureType : uint 32 | { 33 | Other, 34 | PngIcon, 35 | OtherIcon, 36 | CoverFront, 37 | CoverBack, 38 | Leaflet, 39 | Media, 40 | LeadArtist, 41 | Artist, 42 | Conductor, 43 | Band, 44 | Composer, 45 | Lyricist, 46 | Location, 47 | DuringRecording, 48 | DuringPerformance, 49 | ScreenCapture, 50 | BrightFish, 51 | Illustration, 52 | ArtistLogo, 53 | PublisherLogo 54 | }; 55 | } -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | using System.IO; 21 | 22 | namespace PowerShellAudio.Extensions.Vorbis 23 | { 24 | static class ExtensionMethods 25 | { 26 | internal static uint ReadUInt32BigEndian(this BinaryReader reader) 27 | { 28 | Contract.Requires(reader != null); 29 | 30 | return ((uint)reader.ReadByte() << 24) + ((uint)reader.ReadByte() << 16) + ((uint)reader.ReadByte() << 8) + 31 | reader.ReadByte(); 32 | } 33 | 34 | internal static void WriteBigEndian(this BinaryWriter writer, uint value) 35 | { 36 | Contract.Requires(writer != null); 37 | 38 | byte[] buffer = BitConverter.GetBytes(value); 39 | Array.Reverse(buffer); 40 | writer.Write(buffer); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Vorbis/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/OggPackBuffer.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | #pragma warning disable 0649 21 | 22 | namespace PowerShellAudio.Extensions.Vorbis 23 | { 24 | struct OggPackBuffer 25 | { 26 | internal int EndByte; 27 | 28 | internal int EndBit; 29 | 30 | internal IntPtr Buffer; 31 | 32 | internal IntPtr Ptr; 33 | 34 | internal int Storage; 35 | } 36 | } 37 | 38 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/OggPacket.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | namespace PowerShellAudio.Extensions.Vorbis 21 | { 22 | struct OggPacket 23 | { 24 | internal IntPtr Packet; 25 | 26 | internal int Bytes; 27 | 28 | internal int BeginningOfStream; 29 | 30 | internal int EndOfStream; 31 | 32 | internal long GranulePosition; 33 | 34 | internal long PacketNumber; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/OggPage.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | namespace PowerShellAudio.Extensions.Vorbis 21 | { 22 | struct OggPage 23 | { 24 | internal IntPtr Header; 25 | 26 | internal int HeaderLength; 27 | 28 | internal IntPtr Body; 29 | 30 | internal int BodyLength; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/OggStreamState.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Runtime.InteropServices; 20 | 21 | #pragma warning disable 0649 22 | 23 | namespace PowerShellAudio.Extensions.Vorbis 24 | { 25 | struct OggStreamState 26 | { 27 | internal IntPtr BodyData; 28 | 29 | internal int BodyStorage; 30 | 31 | internal int BodyFill; 32 | 33 | internal int BodyReturned; 34 | 35 | internal IntPtr LacingValues; 36 | 37 | internal IntPtr GranuleValues; 38 | 39 | internal int LacingStorage; 40 | 41 | internal int LacingFill; 42 | 43 | internal int LacingPacket; 44 | 45 | internal int LacingReturned; 46 | 47 | [MarshalAs(UnmanagedType.ByValArray, SizeConst = 282)] 48 | internal char[] Header; 49 | 50 | internal int HeaderFill; 51 | 52 | internal int EndOfStream; 53 | 54 | internal int BeginningOfStream; 55 | 56 | internal int SerialNumber; 57 | 58 | internal int PageNumber; 59 | 60 | internal long PacketNumber; 61 | 62 | internal long GranulePosition; 63 | } 64 | } 65 | 66 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/OggSyncState.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | #pragma warning disable 0649 21 | 22 | namespace PowerShellAudio.Extensions.Vorbis 23 | { 24 | struct OggSyncState 25 | { 26 | internal IntPtr Data; 27 | 28 | internal int Storage; 29 | 30 | internal int Fill; 31 | 32 | internal int Returned; 33 | 34 | internal int Unsynced; 35 | 36 | internal int HeaderBytes; 37 | 38 | internal int BodyBytes; 39 | } 40 | } 41 | 42 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Vorbis")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("f771c1a9-ead9-4e34-a234-5fa560c87f12")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.3.1.0")] 38 | [assembly: AssemblyFileVersion("1.3.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Vorbis/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/VorbisBlock.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | #pragma warning disable 0649 21 | 22 | namespace PowerShellAudio.Extensions.Vorbis 23 | { 24 | struct VorbisBlock 25 | { 26 | internal IntPtr Pcm; 27 | 28 | internal OggPackBuffer OggPackBuffer; 29 | 30 | internal int Lw; 31 | 32 | internal int W; 33 | 34 | internal int Nw; 35 | 36 | internal int PcmEnd; 37 | 38 | internal int Mode; 39 | 40 | internal int EoffLag; 41 | 42 | internal long GranulePosition; 43 | 44 | internal long Sequence; 45 | 46 | internal IntPtr DspState; 47 | 48 | internal IntPtr LocalStore; 49 | 50 | internal int LocalTop; 51 | 52 | internal int LocalAlloc; 53 | 54 | internal int TotalUse; 55 | 56 | internal IntPtr Reap; 57 | 58 | internal int GlueBits; 59 | 60 | internal int TimeBits; 61 | 62 | internal int FloorBits; 63 | 64 | internal int ResBits; 65 | 66 | internal IntPtr Internal; 67 | } 68 | } 69 | 70 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/VorbisComment.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | namespace PowerShellAudio.Extensions.Vorbis 21 | { 22 | struct VorbisComment 23 | { 24 | internal IntPtr UserComments; 25 | 26 | internal IntPtr CommentLengths; 27 | 28 | internal int Comments; 29 | 30 | internal IntPtr Vendor; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/VorbisDspState.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | #pragma warning disable 0649 21 | 22 | namespace PowerShellAudio.Extensions.Vorbis 23 | { 24 | struct VorbisDspState 25 | { 26 | internal int AnalysisP; 27 | 28 | internal IntPtr VorbisInfo; 29 | 30 | internal IntPtr Pcm; 31 | 32 | internal IntPtr PcmRet; 33 | 34 | internal int PcmStorage; 35 | 36 | internal int PcmCurrent; 37 | 38 | internal int PcmReturned; 39 | 40 | internal int PreExtrapolate; 41 | 42 | internal int EofFlag; 43 | 44 | internal int Lw; 45 | 46 | internal int W; 47 | 48 | internal int Nw; 49 | 50 | internal int CenterW; 51 | 52 | internal long GranulePosition; 53 | 54 | internal long Sequence; 55 | 56 | internal long GlueBits; 57 | 58 | internal long TimeBits; 59 | 60 | internal long FloorBits; 61 | 62 | internal long ResBits; 63 | 64 | internal IntPtr BackendState; 65 | } 66 | } 67 | 68 | #pragma warning restore 0649 -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/VorbisInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | 20 | #pragma warning disable 0649 21 | 22 | namespace PowerShellAudio.Extensions.Vorbis 23 | { 24 | struct VorbisInfo 25 | { 26 | internal int Version; 27 | 28 | internal int Channels; 29 | 30 | internal int Rate; 31 | 32 | internal int BitrateUpper; 33 | 34 | internal int BitrateNominal; 35 | 36 | internal int BitrateLower; 37 | 38 | internal int BitrateWindow; 39 | 40 | internal IntPtr CodecSetup; 41 | } 42 | } 43 | 44 | #pragma warning restore 0649 45 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/VorbisMetadataEncoderInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio.Extensions.Vorbis 21 | { 22 | class VorbisMetadataEncoderInfo : MetadataEncoderInfo 23 | { 24 | public override string Format 25 | { 26 | get 27 | { 28 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 29 | 30 | return "Vorbis Comments"; 31 | } 32 | } 33 | 34 | public override string FileExtension 35 | { 36 | get 37 | { 38 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 39 | 40 | return ".ogg"; 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/x64/libogg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Vorbis/x64/libogg.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/x64/libvorbis.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Vorbis/x64/libvorbis.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/x86/libogg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Vorbis/x86/libogg.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Vorbis/x86/libvorbis.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Vorbis/x86/libvorbis.dll -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | fmt 6 | 7 | 8 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/Enumerations.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | namespace PowerShellAudio.Extensions.Wave 19 | { 20 | internal enum Format : ushort 21 | { 22 | Pcm = 0x1, 23 | Float = 0x3, 24 | ALaw = 0x6, 25 | MuLaw = 0x7, 26 | Extensible = 0xfffe 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Wave/GlobalSuppressions.cs -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensions.Wave")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("9a913a1d-ecd3-4dc4-9f9b-efd4a8115a48")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.2.1.0")] 38 | [assembly: AssemblyFileVersion("1.2.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/Extensions/PowerShellAudio.Extensions.Wave/StrongName.snk -------------------------------------------------------------------------------- /Extensions/PowerShellAudio.Extensions.Wave/WaveSampleEncoderInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio.Extensions.Wave 21 | { 22 | class WaveSampleEncoderInfo : SampleEncoderInfo 23 | { 24 | public override string Name 25 | { 26 | get 27 | { 28 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 29 | 30 | return "Wave"; 31 | } 32 | } 33 | 34 | public override string FileExtension 35 | { 36 | get 37 | { 38 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 39 | 40 | return ".wav"; 41 | } 42 | } 43 | 44 | public override bool IsLossless => true; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /PowerShellAudio.Api/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | API 6 | 7 | 8 | 9 | 10 | API 11 | 12 | 13 | -------------------------------------------------------------------------------- /PowerShellAudio.Api/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PowerShellAudio.Api/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.Api/GlobalSuppressions.cs -------------------------------------------------------------------------------- /PowerShellAudio.Api/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Api")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("77bab5cf-6c58-4912-8cc3-39a19f5f1d1e")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.2.3.0")] 38 | [assembly: AssemblyFileVersion("1.2.3.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Api/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.Api/StrongName.snk -------------------------------------------------------------------------------- /PowerShellAudio.Commands/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Lossy 6 | 7 | 8 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioAnalyzerInfoCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.ComponentModel.Composition; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsCommon.Get, "AudioAnalyzerInfo"), OutputType(typeof(SampleAnalyzerInfo))] 24 | public class GetAudioAnalyzerInfoCommand : Cmdlet 25 | { 26 | [Parameter(Position = 0)] 27 | public string Name { get; set; } 28 | 29 | protected override void ProcessRecord() 30 | { 31 | foreach (ExportFactory encoderFactory in string.IsNullOrEmpty(Name) 32 | ? ExtensionProvider.GetFactories() 33 | : ExtensionProvider.GetFactories("Name", Name)) 34 | using (ExportLifetimeContext encoderLifetime = encoderFactory.CreateExport()) 35 | WriteObject(encoderLifetime.Value.AnalyzerInfo); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioCoverArtCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.IO; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsCommon.Get, "AudioCoverArt", DefaultParameterSetName = "ByPath"), OutputType(typeof(CoverArt))] 24 | public class GetAudioCoverArtCommand : PSCmdlet 25 | { 26 | [Parameter(ParameterSetName = "ByPath", Mandatory = true, Position = 0, ValueFromPipeline = true)] 27 | public string Path { get; set; } 28 | 29 | [Parameter(ParameterSetName = "ByLiteralPath", Mandatory = true, Position = 0), Alias("PSPath")] 30 | public string LiteralPath { get; set; } 31 | 32 | [Parameter(ParameterSetName = "ByFileInfo", Mandatory = true, Position = 0, ValueFromPipeline = true)] 33 | public FileInfo FileInfo { get; set; } 34 | 35 | protected override void ProcessRecord() 36 | { 37 | foreach (string path in this.GetFileSystemPaths(Path, LiteralPath)) 38 | WriteObject(new CoverArt(new FileInfo(path))); 39 | 40 | if (FileInfo != null) 41 | WriteObject(new CoverArt(FileInfo)); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioEncoderInfoCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.ComponentModel.Composition; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsCommon.Get, "AudioEncoderInfo"), OutputType(typeof(SampleEncoderInfo))] 24 | public class GetAudioEncoderInfoCommand : Cmdlet 25 | { 26 | [Parameter(Position = 0)] 27 | public string Name { get; set; } 28 | 29 | protected override void ProcessRecord() 30 | { 31 | foreach (ExportFactory encoderFactory in string.IsNullOrEmpty(Name) 32 | ? ExtensionProvider.GetFactories() 33 | : ExtensionProvider.GetFactories("Name", Name)) 34 | using (ExportLifetimeContext encoderLifetime = encoderFactory.CreateExport()) 35 | WriteObject(encoderLifetime.Value.EncoderInfo); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioFileCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.IO; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsCommon.Get, "AudioFile", DefaultParameterSetName = "ByPath"), OutputType(typeof(TaggedAudioFile))] 24 | public class GetAudioFileCommand : PSCmdlet 25 | { 26 | [Parameter(ParameterSetName = "ByPath", Mandatory = true, Position = 0, ValueFromPipeline = true)] 27 | public string Path { get; set; } 28 | 29 | [Parameter(ParameterSetName = "ByLiteralPath", Mandatory = true, Position = 0), Alias("PSPath")] 30 | public string LiteralPath { get; set; } 31 | 32 | [Parameter(ParameterSetName = "ByFileInfo", Mandatory = true, Position = 0, ValueFromPipeline = true)] 33 | public FileInfo FileInfo { get; set; } 34 | 35 | protected override void ProcessRecord() 36 | { 37 | foreach (string path in this.GetFileSystemPaths(Path, LiteralPath)) 38 | WriteObject(new TaggedAudioFile(new FileInfo(path))); 39 | 40 | if (FileInfo != null) 41 | WriteObject(new TaggedAudioFile(FileInfo)); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioFileCoverArtCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Management.Automation; 19 | 20 | namespace PowerShellAudio.Commands 21 | { 22 | [Cmdlet(VerbsCommon.Get, "AudioFileCoverArt"), OutputType(typeof(CoverArt))] 23 | public class GetAudioFileCoverArtCommand : Cmdlet 24 | { 25 | [Parameter(Mandatory = true, Position = 0, ValueFromPipeline = true)] 26 | public AudioFile AudioFile { get; set; } 27 | 28 | protected override void ProcessRecord() 29 | { 30 | WriteObject(new TaggedAudioFile(AudioFile).Metadata.CoverArt); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioInfoCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Management.Automation; 19 | 20 | namespace PowerShellAudio.Commands 21 | { 22 | [Cmdlet(VerbsCommon.Get, "AudioInfo"), OutputType(typeof(AudioInfo))] 23 | public class GetAudioInfoCommand : Cmdlet 24 | { 25 | [Parameter(Mandatory = true, Position = 0, ValueFromPipeline = true)] 26 | public AudioFile AudioFile { get; set; } 27 | 28 | protected override void ProcessRecord() 29 | { 30 | WriteObject(AudioFile.AudioInfo); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/GetAudioMetadataEncoderInfoCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.ComponentModel.Composition; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsCommon.Get, "AudioMetadataEncoderInfo"), OutputType(typeof(MetadataEncoderInfo))] 24 | public class GetAudioMetadataEncoderInfoCommand : Cmdlet 25 | { 26 | [Parameter(Position = 0)] 27 | public string Extension { get; set; } 28 | 29 | protected override void ProcessRecord() 30 | { 31 | foreach (ExportFactory factory in string.IsNullOrEmpty(Extension) 32 | ? ExtensionProvider.GetFactories() 33 | : ExtensionProvider.GetFactories("Extension", Extension)) 34 | using (ExportLifetimeContext encoderLifetime = factory.CreateExport()) 35 | WriteObject(encoderLifetime.Value.EncoderInfo); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/HashTableToMetadataDictionaryAdapter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Collections; 19 | using System.Collections.Generic; 20 | using System.Linq; 21 | 22 | namespace PowerShellAudio.Commands 23 | { 24 | class HashTableToMetadataDictionaryAdapter : MetadataDictionary 25 | { 26 | internal HashTableToMetadataDictionaryAdapter(IEnumerable hashtable) 27 | { 28 | if (hashtable == null) 29 | return; 30 | 31 | foreach (var entry in hashtable.Cast().Select(entry => 32 | new KeyValuePair(entry.Key.ToString(), entry.Value.ToString()))) 33 | Add(entry); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/HashTableToSettingsDictionaryAdapter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Collections; 19 | using System.Collections.Generic; 20 | using System.Linq; 21 | 22 | namespace PowerShellAudio.Commands 23 | { 24 | class HashTableToSettingsDictionaryAdapter : SettingsDictionary 25 | { 26 | internal HashTableToSettingsDictionaryAdapter(IEnumerable hashtable) 27 | { 28 | if (hashtable == null) 29 | return; 30 | 31 | foreach (var entry in hashtable.Cast().Select(entry => 32 | new KeyValuePair(entry.Key.ToString(), entry.Value.ToString()))) 33 | Add(entry); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/MetadataSubstituter.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.IO; 19 | using System.Linq; 20 | using System.Text.RegularExpressions; 21 | 22 | namespace PowerShellAudio.Commands 23 | { 24 | class MetadataSubstituter 25 | { 26 | static readonly char[] _invalidChars = Path.GetInvalidFileNameChars(); 27 | static readonly Regex _replacer = new Regex(@"\{[^{]+\}"); 28 | 29 | readonly MetadataDictionary _metadata; 30 | 31 | internal MetadataSubstituter(MetadataDictionary metadata) 32 | { 33 | _metadata = metadata; 34 | } 35 | 36 | internal string Substitute(string path) 37 | { 38 | return path != null 39 | ? _replacer.Replace(path, match => 40 | new string(_metadata[match.Value.Substring(1, match.Value.Length - 2)].Where(character => 41 | !_invalidChars.Contains(character)).ToArray())) 42 | : null; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/PowerShellAudio.psd1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.Commands/PowerShellAudio.psd1 -------------------------------------------------------------------------------- /PowerShellAudio.Commands/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Commands")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("5f8faa81-3075-4ebc-8e94-1f5d654d5a22")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.3.1.0")] 38 | [assembly: AssemblyFileVersion("1.3.1.0")] 39 | 40 | // Mark this assembly as not CLS compliant (The Cmdlet base class isn't): 41 | [assembly: CLSCompliant(false)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/RenameAudioFileCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Management.Automation; 19 | 20 | namespace PowerShellAudio.Commands 21 | { 22 | [Cmdlet(VerbsCommon.Rename, "AudioFile", SupportsShouldProcess = true), OutputType(typeof(TaggedAudioFile))] 23 | public class RenameAudioFileCommand : Cmdlet 24 | { 25 | [Parameter(Mandatory = true, Position = 0)] 26 | public string Name { get; set; } 27 | 28 | [Parameter(Mandatory = true, Position = 1, ValueFromPipeline = true)] 29 | public AudioFile AudioFile { get; set; } 30 | 31 | [Parameter] 32 | public SwitchParameter PassThru { get; set; } 33 | 34 | protected override void ProcessRecord() 35 | { 36 | if (!ShouldProcess(AudioFile.FileInfo.FullName)) 37 | return; 38 | 39 | var taggedAudioFile = new TaggedAudioFile(AudioFile); 40 | taggedAudioFile.Rename(new MetadataSubstituter(taggedAudioFile.Metadata).Substitute(Name)); 41 | if (PassThru) 42 | WriteObject(taggedAudioFile); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/SaveAudioFileMetadataCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Collections; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsData.Save, "AudioFileMetadata", SupportsShouldProcess = true), OutputType(typeof(TaggedAudioFile))] 24 | public class SaveAudioFileMetadataCommand : Cmdlet 25 | { 26 | [Parameter(Mandatory = true, Position = 0, ValueFromPipeline = true)] 27 | public AudioFile AudioFile { get; set; } 28 | 29 | [Parameter] 30 | public Hashtable Setting { get; set; } 31 | 32 | [Parameter] 33 | public SwitchParameter PassThru { get; set; } 34 | 35 | protected override void ProcessRecord() 36 | { 37 | var taggedAudioFile = new TaggedAudioFile(AudioFile); 38 | 39 | if (ShouldProcess(AudioFile.FileInfo.FullName)) 40 | taggedAudioFile.SaveMetadata(new HashTableToSettingsDictionaryAdapter(Setting)); 41 | 42 | if (PassThru) 43 | WriteObject(taggedAudioFile); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/SetAudioFileCoverArtCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Management.Automation; 19 | 20 | namespace PowerShellAudio.Commands 21 | { 22 | [Cmdlet(VerbsCommon.Set, "AudioFileCoverArt"), OutputType(typeof(TaggedAudioFile))] 23 | public class SetAudioFileCoverArtCommand : Cmdlet 24 | { 25 | [Parameter(Mandatory = true, Position = 0)] 26 | public CoverArt CoverArt { get; set; } 27 | 28 | [Parameter(Mandatory = true, Position = 1, ValueFromPipeline = true)] 29 | public AudioFile AudioFile { get; set; } 30 | 31 | [Parameter] 32 | public SwitchParameter PassThru { get; set; } 33 | 34 | protected override void ProcessRecord() 35 | { 36 | var taggedAudioFile = new TaggedAudioFile(AudioFile); 37 | taggedAudioFile.Metadata.CoverArt = CoverArt; 38 | if (PassThru) 39 | WriteObject(taggedAudioFile); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/SetAudioFileMetadataCommand.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Collections; 19 | using System.Management.Automation; 20 | 21 | namespace PowerShellAudio.Commands 22 | { 23 | [Cmdlet(VerbsCommon.Set, "AudioFileMetadata"), OutputType(typeof(TaggedAudioFile))] 24 | public class SetAudioFileMetadataCommand : Cmdlet 25 | { 26 | [Parameter(Mandatory = true, Position = 0)] 27 | public Hashtable Metadata { get; set; } 28 | 29 | [Parameter(Mandatory = true, Position = 1, ValueFromPipeline = true)] 30 | public AudioFile AudioFile { get; set; } 31 | 32 | [Parameter] 33 | public SwitchParameter PassThru { get; set; } 34 | 35 | protected override void ProcessRecord() 36 | { 37 | var taggedAudioFile = new TaggedAudioFile(AudioFile); 38 | new HashTableToMetadataDictionaryAdapter(Metadata).CopyTo(taggedAudioFile.Metadata); 39 | if (PassThru) 40 | WriteObject(taggedAudioFile); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /PowerShellAudio.Commands/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.Commands/StrongName.snk -------------------------------------------------------------------------------- /PowerShellAudio.Common/CustomDictionary.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Lossy 6 | 7 | 8 | -------------------------------------------------------------------------------- /PowerShellAudio.Common/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PowerShellAudio.Common/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Common")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("5770d449-60af-4c7f-b696-8bdf422669df")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.4.1.0")] 38 | [assembly: AssemblyFileVersion("1.4.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Common/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.Common/StrongName.snk -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/AudioInfoDecoderContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | using System.IO; 20 | 21 | namespace PowerShellAudio 22 | { 23 | [ContractClassFor(typeof(IAudioInfoDecoder))] 24 | abstract class AudioInfoDecoderContract : IAudioInfoDecoder 25 | { 26 | public AudioInfo ReadAudioInfo(Stream stream) 27 | { 28 | Contract.Requires(stream != null); 29 | Contract.Requires(stream.CanRead); 30 | Contract.Requires(stream.CanSeek); 31 | Contract.Requires(stream.Position == 0); 32 | Contract.Ensures(stream.CanRead); 33 | Contract.Ensures(stream.CanSeek); 34 | Contract.Ensures(Contract.OldValue(stream).Length == stream.Length); 35 | Contract.Ensures(Contract.Result() != null); 36 | 37 | return default(AudioInfo); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/CustomRules.ruleset: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/FinalSampleConsumerContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio 21 | { 22 | [ContractClassFor(typeof(IFinalSampleConsumer))] 23 | abstract class FinalSampleConsumerContract : IFinalSampleConsumer 24 | { 25 | public bool ManuallyFreesSamples => default(bool); 26 | 27 | public abstract void Submit(SampleCollection samples); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/IAudioInfoDecoder.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | using System.IO; 20 | 21 | namespace PowerShellAudio 22 | { 23 | /// 24 | /// Represents an extension capable of decoding audio from a particular format. 25 | /// 26 | /// 27 | /// To add support for a new audio format, an extension should implement this class, and then decorate their 28 | /// implementation with the attribute so that it can be discovered at 29 | /// runtime. 30 | /// 31 | [ContractClass(typeof(AudioInfoDecoderContract))] 32 | public interface IAudioInfoDecoder 33 | { 34 | /// 35 | /// Reads the audio information. 36 | /// 37 | /// The stream for reading. 38 | /// An object describing the audio contained in the stream. 39 | AudioInfo ReadAudioInfo(Stream stream); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/IMetadataDecoder.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | using System.IO; 20 | 21 | namespace PowerShellAudio 22 | { 23 | /// 24 | /// Represents an extension capable of decoding metadata for a particular format. 25 | /// 26 | /// 27 | /// To add support for a new metadata format, an extension should implement this class, then decorate their 28 | /// implementation with the attribute so that it can be discovered at 29 | /// runtime. 30 | /// 31 | [ContractClass(typeof(MetadataDecoderContract))] 32 | public interface IMetadataDecoder 33 | { 34 | /// 35 | /// Reads the metadata. 36 | /// 37 | /// The stream for reading. 38 | /// A object constructed from the stream. 39 | MetadataDictionary ReadMetadata(Stream stream); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/ISampleConsumer.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio 21 | { 22 | /// 23 | /// Represents any extension that consumes s. 24 | /// 25 | [ContractClass(typeof(SampleConsumerContract))] 26 | public interface ISampleConsumer 27 | { 28 | /// 29 | /// Submits the specified samples for processing. 30 | /// 31 | /// The samples. 32 | void Submit(SampleCollection samples); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/ISampleDecoder.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | using System.IO; 20 | 21 | namespace PowerShellAudio 22 | { 23 | /// 24 | /// Represents an extension capable of decoding samples from a particular format. 25 | /// 26 | /// 27 | /// To add support for decoding a new format, an extension should implement this class, then decorate their 28 | /// implementation with the attribute so that it can be discovered at 29 | /// runtime. 30 | /// 31 | [ContractClass(typeof(SampleDecoderContract))] 32 | public interface ISampleDecoder 33 | { 34 | /// 35 | /// Initializes the decoder using the specified stream. 36 | /// 37 | /// The stream for reading. 38 | void Initialize(Stream stream); 39 | 40 | /// 41 | /// Reads the next in sequence. 42 | /// 43 | /// The next object constructed from the stream. 44 | SampleCollection DecodeSamples(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/MetadataDecoderContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | using System.IO; 21 | 22 | namespace PowerShellAudio 23 | { 24 | [ContractClassFor(typeof(IMetadataDecoder))] 25 | abstract class MetadataDecoderContract : IMetadataDecoder 26 | { 27 | public MetadataDictionary ReadMetadata(Stream stream) 28 | { 29 | Contract.Requires(stream != null); 30 | Contract.Requires(stream.CanRead); 31 | Contract.Requires(stream.CanSeek); 32 | Contract.Requires(stream.Position == 0); 33 | Contract.Ensures(stream.CanRead); 34 | Contract.Ensures(stream.CanSeek); 35 | Contract.Ensures(Contract.OldValue(stream).Length == stream.Length); 36 | Contract.Ensures(Contract.Result() != null); 37 | 38 | return default(MetadataDictionary); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/MetadataEncoderInfoContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | using System.IO; 21 | using System.Linq; 22 | 23 | namespace PowerShellAudio 24 | { 25 | [ContractClassFor(typeof(MetadataEncoderInfo))] 26 | abstract class MetadataEncoderInfoContract : MetadataEncoderInfo 27 | { 28 | public override string FileExtension 29 | { 30 | get 31 | { 32 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 33 | Contract.Ensures(Contract.Result().StartsWith(".", StringComparison.OrdinalIgnoreCase)); 34 | Contract.Ensures(!Contract.Result().Any(char.IsWhiteSpace)); 35 | Contract.Ensures(!Contract.Result().Any(character => Path.GetInvalidFileNameChars().Contains(character))); 36 | Contract.Ensures(!Contract.Result().Any(char.IsUpper)); 37 | 38 | return default(string); 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Resources; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("PowerShellAudio.Extensibility")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("PowerShellAudio")] 15 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | [assembly: Guid("329a21d5-b03c-42cd-acc9-fa7794106984")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | [assembly: AssemblyVersion("1.4.1.0")] 38 | [assembly: AssemblyFileVersion("1.4.1.0")] 39 | 40 | // Mark this assembly as CLS compliant: 41 | [assembly: CLSCompliant(true)] 42 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/SampleAnalyzerContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio 22 | { 23 | [ContractClassFor(typeof(ISampleAnalyzer))] 24 | abstract class SampleAnalyzerContract : ISampleAnalyzer 25 | { 26 | public SampleAnalyzerInfo AnalyzerInfo 27 | { 28 | get 29 | { 30 | Contract.Ensures(Contract.Result() != null); 31 | 32 | return default(SampleAnalyzerInfo); 33 | } 34 | } 35 | 36 | public void Initialize(AudioInfo audioInfo, GroupToken groupToken) 37 | { 38 | Contract.Requires(audioInfo != null); 39 | Contract.Requires(groupToken != null); 40 | } 41 | 42 | public MetadataDictionary GetResult() 43 | { 44 | Contract.Ensures(Contract.Result() != null); 45 | 46 | return default(MetadataDictionary); 47 | } 48 | 49 | public abstract bool ManuallyFreesSamples { get; } 50 | 51 | public abstract void Submit(SampleCollection samples); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/SampleAnalyzerInfo.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio 22 | { 23 | /// 24 | /// Contains information about an implementation. 25 | /// 26 | [Serializable, ContractClass(typeof(SampleAnalyzerInfoContract))] 27 | public abstract class SampleAnalyzerInfo 28 | { 29 | /// 30 | /// Gets the name of the analyzer. 31 | /// 32 | /// 33 | /// The name. 34 | /// 35 | public abstract string Name { get; } 36 | 37 | /// 38 | /// Gets the external library's version string, if relevant. 39 | /// 40 | /// 41 | /// The external library. 42 | /// 43 | public virtual string ExternalLibrary 44 | { 45 | get 46 | { 47 | Contract.Ensures(Contract.Result() != null); 48 | 49 | return string.Empty; 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/SampleAnalyzerInfoContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System.Diagnostics.Contracts; 19 | 20 | namespace PowerShellAudio 21 | { 22 | [ContractClassFor(typeof(SampleAnalyzerInfo))] 23 | abstract class SampleAnalyzerInfoContract : SampleAnalyzerInfo 24 | { 25 | public override string Name 26 | { 27 | get 28 | { 29 | Contract.Ensures(!string.IsNullOrEmpty(Contract.Result())); 30 | 31 | return default(string); 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/SampleConsumerContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | 21 | namespace PowerShellAudio 22 | { 23 | [ContractClassFor(typeof(ISampleConsumer))] 24 | abstract class SampleConsumerContract : ISampleConsumer 25 | { 26 | public void Submit(SampleCollection samples) 27 | { 28 | Contract.Requires(samples != null); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/SampleDecoderContract.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014, 2015 Jeremy Herbison 3 | * 4 | * This file is part of PowerShell Audio. 5 | * 6 | * PowerShell Audio is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser 7 | * General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your 8 | * option) any later version. 9 | * 10 | * PowerShell Audio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 11 | * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License along with PowerShell Audio. If not, see 15 | * . 16 | */ 17 | 18 | using System; 19 | using System.Diagnostics.Contracts; 20 | using System.IO; 21 | 22 | namespace PowerShellAudio 23 | { 24 | [ContractClassFor(typeof(ISampleDecoder))] 25 | abstract class SampleDecoderContract : ISampleDecoder 26 | { 27 | public void Initialize(Stream stream) 28 | { 29 | Contract.Requires(stream != null); 30 | Contract.Requires(stream.CanRead); 31 | Contract.Requires(stream.CanSeek); 32 | Contract.Requires(stream.Position == 0); 33 | } 34 | 35 | public SampleCollection DecodeSamples() 36 | { 37 | Contract.Ensures(Contract.Result() != null); 38 | 39 | return default(SampleCollection); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /PowerShellAudio.Extensibility/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.Extensibility/StrongName.snk -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/AudioFileAnalyzeDataSource.csv: -------------------------------------------------------------------------------- 1 | Index,FileName,Analyzer,ExpectedMetadata 2 | 0,LPCM 8-bit 8000Hz Stereo.wav,ReplayGain,TrackPeak=0.976563;TrackGain=-7.60 dB;AlbumPeak=0.976563;AlbumGain=-7.60 dB 3 | 1,LPCM 16-bit 44100Hz Stereo.wav,ReplayGain,TrackPeak=1.000000;TrackGain=-6.58 dB;AlbumPeak=1.000000;AlbumGain=-6.58 dB 4 | 2,LPCM 16-bit 44100Hz Mono.wav,ReplayGain,TrackPeak=1.000000;TrackGain=-11.05 dB;AlbumPeak=1.000000;AlbumGain=-11.05 dB 5 | 3,LPCM 16-bit 48000Hz Stereo.wav,ReplayGain,TrackPeak=0.999970;TrackGain=-6.46 dB;AlbumPeak=0.999970;AlbumGain=-6.46 dB 6 | 4,LPCM 24-bit 96000Hz Stereo.wav,ReplayGain,TrackPeak=0.988553;TrackGain=-6.47 dB;AlbumPeak=0.988553;AlbumGain=-6.47 dB 7 | 5,LPCM 8-bit 8000Hz Stereo.wav,ReplayGain 2.0,TrackPeak=0.976563;TrackGain=-8.89 dB;AlbumPeak=0.976563;AlbumGain=-8.89 dB 8 | 6,LPCM 16-bit 44100Hz Stereo.wav,ReplayGain 2.0,TrackPeak=1.000000;TrackGain=-8.68 dB;AlbumPeak=1.000000;AlbumGain=-8.68 dB 9 | 7,LPCM 16-bit 44100Hz Mono.wav,ReplayGain 2.0,TrackPeak=1.000000;TrackGain=-9.79 dB;AlbumPeak=1.000000;AlbumGain=-9.79 dB 10 | 8,LPCM 16-bit 48000Hz Stereo.wav,ReplayGain 2.0,TrackPeak=0.999969;TrackGain=-8.67 dB;AlbumPeak=0.999969;AlbumGain=-8.67 dB 11 | 9,LPCM 24-bit 96000Hz Stereo.wav,ReplayGain 2.0,TrackPeak=0.988553;TrackGain=-8.64 dB;AlbumPeak=0.988553;AlbumGain=-8.64 dB 12 | -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using System.Resources; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("PowerShellAudio.UnitTests")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("PowerShellAudio")] 14 | [assembly: AssemblyCopyright("Copyright © 2014, 2015 Jeremy Herbison")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | [assembly: Guid("b831ee1d-fcbe-4d67-b4e5-e2004a504844")] 25 | 26 | // Version information for an assembly consists of the following four values: 27 | // 28 | // Major Version 29 | // Minor Version 30 | // Build Number 31 | // Revision 32 | // 33 | // You can specify all the values or you can default the Build and Revision Numbers 34 | // by using the '*' as shown below: 35 | // [assembly: AssemblyVersion("1.0.*")] 36 | [assembly: AssemblyVersion("1.3.1.0")] 37 | [assembly: AssemblyFileVersion("1.3.1.0")] 38 | [assembly: NeutralResourcesLanguageAttribute("en-US")] 39 | -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/StrongName.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/StrongName.snk -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/AAC 153 kbps 44100Hz Stereo.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/AAC 153 kbps 44100Hz Stereo.m4a -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/ALAC 16-bit 44100Hz Mono.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/ALAC 16-bit 44100Hz Mono.m4a -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/ALAC 16-bit 44100Hz Stereo.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/ALAC 16-bit 44100Hz Stereo.m4a -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/ALAC 16-bit 48000Hz Stereo.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/ALAC 16-bit 48000Hz Stereo.m4a -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/ALAC 24-bit 96000Hz Stereo.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/ALAC 24-bit 96000Hz Stereo.m4a -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/FLAC 16-bit 44100Hz Mono.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/FLAC 16-bit 44100Hz Mono.flac -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/FLAC 16-bit 44100Hz Stereo.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/FLAC 16-bit 44100Hz Stereo.flac -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/FLAC 16-bit 48000Hz Stereo.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/FLAC 16-bit 48000Hz Stereo.flac -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/FLAC 24-bit 96000Hz Stereo.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/FLAC 24-bit 96000Hz Stereo.flac -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/FLAC 8-bit 8000Hz Stereo.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/FLAC 8-bit 8000Hz Stereo.flac -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/LPCM 16-bit 44100Hz Mono.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/LPCM 16-bit 44100Hz Mono.wav -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/LPCM 16-bit 44100Hz Stereo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/LPCM 16-bit 44100Hz Stereo.wav -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/LPCM 16-bit 48000Hz Stereo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/LPCM 16-bit 48000Hz Stereo.wav -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/LPCM 24-bit 96000Hz Stereo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/LPCM 24-bit 96000Hz Stereo.wav -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/LPCM 8-bit 8000Hz Stereo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/LPCM 8-bit 8000Hz Stereo.wav -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/MP3 213kbps 44100Hz Stereo.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/MP3 213kbps 44100Hz Stereo.mp3 -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/TestCover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/TestCover.jpg -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/TestCover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/TestCover.png -------------------------------------------------------------------------------- /PowerShellAudio.UnitTests/TestFiles/Vorbis 160kbps 44100Hz Stereo.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/PowerShellAudio.UnitTests/TestFiles/Vorbis 160kbps 44100Hz Stereo.ogg -------------------------------------------------------------------------------- /packages/Microsoft.Tpl.Dataflow.4.5.23/Microsoft.Tpl.Dataflow.4.5.23.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/packages/Microsoft.Tpl.Dataflow.4.5.23/Microsoft.Tpl.Dataflow.4.5.23.nupkg -------------------------------------------------------------------------------- /packages/Microsoft.Tpl.Dataflow.4.5.23/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Dataflow.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/packages/Microsoft.Tpl.Dataflow.4.5.23/lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Dataflow.dll -------------------------------------------------------------------------------- /packages/Microsoft.Tpl.Dataflow.4.5.23/lib/portable-net45+win8+wpa81/System.Threading.Tasks.Dataflow.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jherby2k/PowerShellAudio/34077e1c8c9ecbdd4879ff4c12505289ffccaaf7/packages/Microsoft.Tpl.Dataflow.4.5.23/lib/portable-net45+win8+wpa81/System.Threading.Tasks.Dataflow.dll -------------------------------------------------------------------------------- /packages/repositories.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | --------------------------------------------------------------------------------