├── .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 |
--------------------------------------------------------------------------------