mirror of
https://github.com/ZuneDev/MicrosoftIris.git
synced 2026-07-27 13:13:29 -07:00
67 lines
2.5 KiB
C#
67 lines
2.5 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Microsoft.Iris.Render.Sound.Ds8SoundDevice
|
|
// 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 Microsoft.Iris.Render.Protocols.Splash.Rendering.Nt;
|
|
using System;
|
|
|
|
namespace Microsoft.Iris.Render.Sound
|
|
{
|
|
internal class Ds8SoundDevice : SoundDevice, IRenderHandleOwner
|
|
{
|
|
private IRenderWindow m_ownerWindow;
|
|
private RemoteDs8SoundDevice m_remoteDevice;
|
|
|
|
internal Ds8SoundDevice(RenderSession ownerSession, IRenderWindow ownerWindow)
|
|
: base(ownerSession)
|
|
{
|
|
Debug2.Validate(ownerWindow != null, typeof(ArgumentNullException), nameof(ownerWindow));
|
|
this.m_ownerWindow = ownerWindow;
|
|
this.PostCreate();
|
|
}
|
|
|
|
protected override void Dispose(bool inDispose)
|
|
{
|
|
try
|
|
{
|
|
if (this.m_remoteDevice == null)
|
|
return;
|
|
this.m_remoteDevice.Dispose();
|
|
this.m_remoteDevice = null;
|
|
}
|
|
finally
|
|
{
|
|
base.Dispose(inDispose);
|
|
}
|
|
}
|
|
|
|
RENDERHANDLE IRenderHandleOwner.RenderHandle => this.m_remoteDevice.RenderHandle;
|
|
|
|
void IRenderHandleOwner.OnDisconnect() => this.m_remoteDevice = null;
|
|
|
|
protected override SoundDeviceType DeviceType => SoundDeviceType.DirectSound8;
|
|
|
|
protected override void CreateRemoteSoundDeviceImpl() => this.m_remoteDevice = this.Session.NtRenderingProtocol.INPROC_BuildRemoteDs8SoundDevice(this, this.m_ownerWindow.WindowHandle);
|
|
|
|
protected override void CreateExternalResourcesImpl() => this.m_remoteDevice.SendCreateExternalResources();
|
|
|
|
protected override void EvictExternalResourcesImpl() => this.m_remoteDevice.SendEvictExternalResources();
|
|
|
|
protected override void CreateRemoteSoundBufferImpl(
|
|
RENDERHANDLE handle,
|
|
SoundHeader info,
|
|
LocalSoundBufferCallback callback)
|
|
{
|
|
this.m_remoteDevice.SendCreateSoundBuffer(handle, info, callback);
|
|
}
|
|
|
|
protected override void CreateRemoteSoundImpl(RENDERHANDLE handle, SoundBuffer soundBuffer) => this.m_remoteDevice.SendCreateSound(handle, soundBuffer.RemoteStub);
|
|
}
|
|
}
|