#pragma once

#include "共通\refCTimer.h"

namespace FDK
{
	public enum class ESoundDeviceType
	{
		ExclusiveWASAPI,
		SharedWASAPI,
		ASIO,
		Unknown,
	};

	ref class CSound;

	public interface class ISoundDevice
	{
		property ESoundDeviceType e出力デバイス
		{
			ESoundDeviceType get();
		}
		property Int64 n実出力遅延ms
		{
			Int64 get();
		}
		property Int64 n経過時間ms 
		{
			Int64 get();
		}
		property Int64 n経過時間を更新したシステム時刻ms
		{
			Int64 get();
		}
		property CTimer^ tmシステムタイマ 
		{
			CTimer^ get();
		}

		CSound^ tサウンドを作成する( String^ strファイル名 );
		CSound^ tサウンドを作成する( array<byte>^ byArrWAVファイルイメージ );
		void tサウンドを作成する( String^ strファイル名, CSound^% sound );
		void tサウンドを作成する( array<byte>^ byArrWAVファイルイメージ, CSound^% sound );
	};
}
