OSDN Git Service

FDK.Log.ERRORandTHROW() を追加。
[strokestylet/CsWin10Desktop3.git] / FDK24 / メディア / サウンド / WASAPIold / MFAsyncCallback.cs
1 using System;
2
3 namespace FDK.メディア.サウンド.WASAPIold
4 {
5         /// <summary>
6         /// IMFAsyncCallback の汎用的な実装。
7         /// </summary>
8         /// <remarks>
9         /// コンストラクタで、ワークキューIDとコールバックデリゲート(InvokeFunc型)を指定する。
10         /// </remarks>
11         public class MFAsyncCallback : SharpDX.MediaFoundation.AsyncCallbackBase, SharpDX.MediaFoundation.IAsyncCallback
12         {
13                 public delegate void InvokeFunc( SharpDX.MediaFoundation.AsyncResult asyncResult );
14
15                 public MFAsyncCallback( int QueueID, InvokeFunc invokeFunc )
16                 {
17                         this.QueueID = new SharpDX.MediaFoundation.WorkQueueId( QueueID );
18                         this.invokeFunc = invokeFunc;
19                 }
20
21                 public override SharpDX.MediaFoundation.WorkQueueId WorkQueueId
22                 {
23                         get
24                         {
25                                 return this.QueueID;
26                         }
27                 }
28                 public override void Invoke( SharpDX.MediaFoundation.AsyncResult asyncResult )
29                 {
30                         this.invokeFunc( asyncResult );
31                 }
32
33                 private SharpDX.MediaFoundation.WorkQueueId QueueID = SharpDX.MediaFoundation.WorkQueueId.Standard;
34                 private InvokeFunc invokeFunc = null;
35         }
36 }