/********************************************************************
 *                                                                  *
 * THIS FILE IS PART OF THE aoTuvWriter SOURCE CODE.                *
 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
 *                                                                  *
 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007             *
 * by the Xiph.Org Foundation http://www.xiph.org/                  *
 *                                                                  *
 * THE aoTuv SOURCE CODE IS (C) COPYRIGHT 2003-2008 Aoyumi          *
 * http://www.geocities.jp/aoyoume/aotuv/                           *
 *                                                                  *
 * THE aoTuvWriter SOURCE CODE IS (C) COPYRIGHT 2008 Cocha          *
 * http://sourceforge.jp/projects/directshow/                       *
 *                                                                  *
 ********************************************************************/

#ifndef _aoTuvWriter_h_
#define _aoTuvWriter_h_

// {BCA97B10-FF13-4818-ACB7-C279DF3A55FF}
static const GUID CLSID_aoTuvWriter =
{ 0xbca97b10, 0xff13, 0x4818, { 0xac, 0xb7, 0xc2, 0x79, 0xdf, 0x3a, 0x55, 0xff } };

// {CDF9EBCB-701A-4fae-A26C-0BE4D74ABF55}
static const GUID CLSID_aoTuvWriterProp = 
{ 0xcdf9ebcb, 0x701a, 0x4fae, { 0xa2, 0x6c, 0x0b, 0xe4, 0xd7, 0x4a, 0xbf, 0x55 } };

// {BD7DAEC2-193E-4a6a-B9D3-476D8C929B35}
static const GUID IID_IaoTuvInterface = 
{ 0xbd7daec2, 0x193e, 0x4a6a, { 0xb9, 0xd3, 0x47, 0x6d, 0x8c, 0x92, 0x9b, 0x35 } };

typedef struct tagVORBISFORMAT
{
	WORD  nChannels;
	long  nSamplesPerSec;
	long  nMinBitsPerSec;
	long  nAvgBitsPerSec;
	long  nMaxBitsPerSec;
	float fQuality;
} VORBISFORMAT;

typedef struct tagVORBISTAG
{
   char acTitle[256];
   char acArtist[256];
   char acAlbum[256];
   char acTrackNumber[256];
   char acDate[256];
   char acGenre[256];
   char acComment[256];
} VORBISTAG;

// ------------------------------------------------------------------------------------------------------------------------
// エンコード設定インターフェイス
__interface
__declspec(uuid("{16F5105B-7322-4a62-9284-992DD186F6A1}"))
IaoTuvInterface : public IUnknown
{
public:
   STDMETHODIMP SetVorbisFormat(void *);
   STDMETHODIMP GetVorbisFormat(void *);
   STDMETHODIMP SetVorbisTag(void *);
};// ------------------------------------------------------------------------------------------------------------------------

#endif _aoTuvWriter_h_
