| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /******************************************************************************
- |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- |* PARTICULAR PURPOSE.
- |*
- |* Copyright 1995-2005 Nero AG. All Rights Reserved.
- |*-----------------------------------------------------------------------------
- |* PROJECT: Nero Plugin Manager Example
- |*
- |* FILE: WavTgt.h
- |*
- |* PURPOSE: Declaration file for the wave target class
- ******************************************************************************/
- #ifndef _WAV_TGT_
- # define _WAV_TGT_
- #if _MSC_VER > 1000
- # pragma once
- #endif // _MSC_VER > 1000
- // CStatus and CAggregatable
- #include "AudioBase.h"
- // wave format definitions
- #include "WavFormat.h"
- // Internal interfaces
- // {48960729-B5C6-48fb-B6A9-AF3E428F9E2B}
- EXTERN_GUID(IID_IWavTgtSetDlgData,
- 0x48960729, 0xb5c6, 0x48fb,
- 0xb6, 0xa9, 0xaf, 0x3e, 0x42, 0x8f, 0x9e, 0x2b);
- struct __declspec(uuid("48960729-B5C6-48fb-B6A9-AF3E428F9E2B"))
- IWavTgtSetDlgData;
- interface IWavTgtSetDlgData : public IUnknown
- {
- virtual SWavFormat* GetDlgData() = 0;
- };
- // CWavTgt - the wave target class
- class CWavTgt : public CAggregatable,
- public IURLHolder,
- public IAudioItem,
- public IProcess,
- public IAudioRawWriter,
- public IWavTgtSetDlgData,
- public IInfoWriter,
- public SWavCommon
- {
- // Construction/Destruction
- public:
- CWavTgt(const SWavFormat &formatSrc, IAudioComponent *pCreator)
- : CAggregatable (0),
- m_dwWrittenRAWSize (0),
- m_hFile (INVALID_HANDLE_VALUE),
- m_flags (EAuxFlags(0)),
- m_pCreator (pCreator),
- m_DlgData (formatSrc),
- m_bEndProcess (false)
- {};
- virtual ~CWavTgt() {};
- // Operations
- public:
- AGGREGATABLE_INTERFACE_MAP_BEGIN
- INTERFACE_ENTRY(IAudioItem)
- INTERFACE_ENTRY(IURLHolder)
- INTERFACE_ENTRY(IProcess)
- INTERFACE_ENTRY(IAudioRawWriter)
- INTERFACE_ENTRY(IWavTgtSetDlgData)
- INTERFACE_ENTRY(IInfoWriter)
- AGGREGATABLE_INTERFACE_MAP_END
- // IAudioItem
- virtual bool GetCreator(IAudioComponent** pCreator);
- // Bitmask of auxiliary flags
- virtual EAuxFlags GetAuxFlags();
- virtual void SetAuxFlags(EAuxFlags flags);
- // IURLHolder
- virtual bool SetURL(const char* szURL, IStatus** ppStatus);
- virtual const char* GetURL();
- virtual EURLType GetType();
- // IWavTgtSetDlgData
- SWavFormat* GetDlgData();
- // IProcess
- virtual bool Start(IStatus** ppStatus);
- virtual bool End(IStatus** ppStatus);
- virtual bool IsInProcess();
- // IAudioTarget
- virtual bool RawWrite(BYTE* pData, int iNumberOfBytesToWrite,
- EAudioRawState& state,
- IStatus** ppStatus);
- virtual SWavFormat GetRawFormat();
- // IInfoWriter
- virtual void SetTitle(const char* szTitle);
- virtual void SetArtist(const char* szArtist);
- virtual void SetAlbum(const char* szAlbum);
- virtual void SetYear(const char* szYear);
- virtual void SetGenre(const char* szGenre);
- // Data
- protected:
- CString m_csURL;
- int m_dwWrittenRAWSize;
- HANDLE m_hFile;
- EAuxFlags m_flags;
- CComPtr<IAudioComponent> m_pCreator;
- SWavFormat m_DlgData;
- bool m_bEndProcess;
- };
- #endif // _WAV_TGT
|