Added SFXInstancePool to pool SoundEffectInstances created from SoundEffect.Play() or SoundEffect.CreateInstance(). Removed old pool implementations from other platforms.
Syncaidius: Fixed handling of stopped music when tombstoning and restoring an app.
https://github.com/mono/MonoGame/pull/2118
Added ArgumentOutOfRangeExceptions to match XNA.
Added some comments.
Implemented missing SoundEffect.GetSampleDuration() and SoundEffect.GetSampleSizeInBytes().
Now setting SoundEffect duration in the constructor.
Fixed casting error in GetSampleDuration() and GetSampleSizeInBytes().
Added method to get all pooled SFXInstances.
Setting SoundEffect.MasterVolume now adjusts the volume of previously created and currently pooled SFXInstances.
Factoring in SoundEffect.MasterVolume for PSM.
SoundEffect.Play() No longer needs #if branching. SFXInstances created from Play() are always played at the max volume and are scaled by the MasterVolume elsewhere.
SFXInstancePool sets SFXInstance properties to their default value when returning a pooled instance.
SoundEffectInstance now returns the correct SoundState on OpenAL platforms.
Android build fix.
Moved Pan, Volume, and Pitch fields into main implementation of SoundEffectInstance.
Removed platform get methods in SoundEffectInstance. These now return the new fields.
Merge branch 'AudioSplit' of https://github.com/SickheadGames/MonoGame into AudioImprovements
Disposed instances won't return to the pool.
Now that SoundEffect.Duration is set in the constructor, there's no need for PlatformGetDuration(). Removed it from all implementations.
Added ArgumentOutOfRangeExceptions for GetSampleDuration and GetSampleSizeInBytes when the sampleRate is outside of acceptable bounds.
Cleanup ifdefs and split platform-specific into methods
Copy Texture2D.cs to API-specific files.
Cull Texture2D APIs to their specific partials.
Ifdef cleanup in Texture3D and split into API methods.
Copied Texture3D.cs to API-specific files.
Cull APIs from platform files.