#pragma once

#include "kpi_player.h"
#include "kpi_impl.h"

extern const GUID kbGuru2SMF_GUID;

class KbGuru2SMFPlayerModule : public KbKpiUnknownImpl<IKpiPlayerModule>
{
public:
    IKpiConfig *m_pConfig;
    KPI_PLAYER_MODULEINFO m_ModuleInfo;
public:
    void  WINAPI GetModuleInfo(const KPI_PLAYER_MODULEINFO **ppInfo);
    DWORD WINAPI Open(const KPI_MEDIAINFO *cpRequest, 
                      IKpiFile *pFile, 
                      IKpiFolder *pFolder, 
                      IKpiPlayer **ppPlayer);
    BOOL  WINAPI EnumConfig(IKpiConfigEnumerator *pEnumerator);//{return false;}
    DWORD WINAPI ApplyConfig(const wchar_t *cszSection,//セクション名
                             const wchar_t *cszKey,    //キー名
                             INT64  nValue, //変更後の値(BOOL/INT の場合)
                             double dValue, //変更後の値(FLOAT の場合)
                             const wchar_t *cszValue);//{return KPI_CFGRET_OK;}//変更後の値(文字列)
    KbGuru2SMFPlayerModule(IKpiConfig *pConfig);
    ~KbGuru2SMFPlayerModule(void);
};

