using System;
namespace FDK.メディア.サウンド.WASAPIold
{
///
/// IMFAsyncCallback の汎用的な実装。
///
///
/// コンストラクタで、ワークキューIDとコールバックデリゲート(InvokeFunc型)を指定する。
///
public class MFAsyncCallback : SharpDX.MediaFoundation.AsyncCallbackBase, SharpDX.MediaFoundation.IAsyncCallback
{
public delegate void InvokeFunc( SharpDX.MediaFoundation.AsyncResult asyncResult );
public MFAsyncCallback( int QueueID, InvokeFunc invokeFunc )
{
this.QueueID = new SharpDX.MediaFoundation.WorkQueueId( QueueID );
this.invokeFunc = invokeFunc;
}
public override SharpDX.MediaFoundation.WorkQueueId WorkQueueId
{
get
{
return this.QueueID;
}
}
public override void Invoke( SharpDX.MediaFoundation.AsyncResult asyncResult )
{
this.invokeFunc( asyncResult );
}
private SharpDX.MediaFoundation.WorkQueueId QueueID = SharpDX.MediaFoundation.WorkQueueId.Standard;
private InvokeFunc invokeFunc = null;
}
}