mirror of
https://github.com/ZuneDev/Xune.git
synced 2026-07-27 13:13:10 -07:00
Added raw UIX.RenderApi project
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Microsoft.Iris.Render.Sound.SoundDevice
|
||||
// Assembly: UIX.RenderApi, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||
// MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1
|
||||
// Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll
|
||||
|
||||
using Microsoft.Iris.Render.Common;
|
||||
using Microsoft.Iris.Render.Internal;
|
||||
using Microsoft.Iris.Render.Protocol;
|
||||
using Microsoft.Iris.Render.Protocols.Splash.Rendering;
|
||||
using System;
|
||||
|
||||
namespace Microsoft.Iris.Render.Sound
|
||||
{
|
||||
internal abstract class SoundDevice : RenderObject, ISoundDevice
|
||||
{
|
||||
private RenderSession m_ownerSession;
|
||||
private bool m_isValid;
|
||||
|
||||
internal SoundDevice(RenderSession ownerSession)
|
||||
{
|
||||
this.m_ownerSession = ownerSession;
|
||||
this.m_isValid = false;
|
||||
}
|
||||
|
||||
protected void PostCreate()
|
||||
{
|
||||
this.CreateRemoteSoundDevice();
|
||||
this.m_isValid = true;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool inDispose)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.m_ownerSession = (RenderSession) null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
base.Dispose(inDispose);
|
||||
}
|
||||
}
|
||||
|
||||
SoundDeviceType ISoundDevice.DeviceType => this.DeviceType;
|
||||
|
||||
bool ISoundDevice.Mute
|
||||
{
|
||||
get
|
||||
{
|
||||
Debug2.Validate(this.DeviceType == SoundDeviceType.XAudio, typeof (InvalidOperationException), "Only supported on XAudio");
|
||||
return false;
|
||||
}
|
||||
set => Debug2.Validate(this.DeviceType == SoundDeviceType.XAudio, typeof (InvalidOperationException), "Only supported on XAudio");
|
||||
}
|
||||
|
||||
float ISoundDevice.Volume
|
||||
{
|
||||
get
|
||||
{
|
||||
Debug2.Validate(this.DeviceType == SoundDeviceType.XAudio, typeof (InvalidOperationException), "Only supported on XAudio");
|
||||
return 0.0f;
|
||||
}
|
||||
set => Debug2.Validate(this.DeviceType == SoundDeviceType.XAudio, typeof (InvalidOperationException), "Only supported on XAudio");
|
||||
}
|
||||
|
||||
internal RenderSession Session => this.m_ownerSession;
|
||||
|
||||
internal bool IsValid => this.m_isValid;
|
||||
|
||||
ISoundBuffer ISoundDevice.CreateSoundBuffer(
|
||||
object objUser,
|
||||
ISoundData soundData)
|
||||
{
|
||||
Debug2.Validate(objUser != null, typeof (ArgumentNullException), nameof (objUser));
|
||||
Debug2.Validate(soundData != null, typeof (ArgumentNullException), nameof (soundData));
|
||||
SoundBuffer soundBuffer = new SoundBuffer(this, soundData);
|
||||
soundBuffer.RegisterUsage(objUser);
|
||||
return (ISoundBuffer) soundBuffer;
|
||||
}
|
||||
|
||||
internal void Rebuild()
|
||||
{
|
||||
if (this.m_isValid)
|
||||
this.EvictExternalResources();
|
||||
if (this.m_isValid)
|
||||
return;
|
||||
this.CreateExternalResources();
|
||||
}
|
||||
|
||||
private void EvictExternalResources()
|
||||
{
|
||||
this.m_isValid = false;
|
||||
this.EvictExternalResourcesImpl();
|
||||
}
|
||||
|
||||
private void CreateExternalResources()
|
||||
{
|
||||
this.CreateExternalResourcesImpl();
|
||||
this.m_isValid = true;
|
||||
}
|
||||
|
||||
private void CreateRemoteSoundDevice() => this.CreateRemoteSoundDeviceImpl();
|
||||
|
||||
internal void CreateRemoteSoundBuffer(
|
||||
RENDERHANDLE handle,
|
||||
SoundHeader info,
|
||||
LocalSoundBufferCallback callback)
|
||||
{
|
||||
this.CreateRemoteSoundBufferImpl(handle, info, callback);
|
||||
}
|
||||
|
||||
internal void CreateRemoteSound(RENDERHANDLE handle, SoundBuffer soundBuffer) => this.CreateRemoteSoundImpl(handle, soundBuffer);
|
||||
|
||||
protected abstract SoundDeviceType DeviceType { get; }
|
||||
|
||||
protected abstract void CreateRemoteSoundDeviceImpl();
|
||||
|
||||
protected abstract void CreateExternalResourcesImpl();
|
||||
|
||||
protected abstract void EvictExternalResourcesImpl();
|
||||
|
||||
protected abstract void CreateRemoteSoundBufferImpl(
|
||||
RENDERHANDLE handle,
|
||||
SoundHeader info,
|
||||
LocalSoundBufferCallback callback);
|
||||
|
||||
protected abstract void CreateRemoteSoundImpl(RENDERHANDLE handle, SoundBuffer soundBuffer);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user