diff options
Diffstat (limited to 'utils/hlfaceposer/wavebrowser.h')
| -rw-r--r-- | utils/hlfaceposer/wavebrowser.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/utils/hlfaceposer/wavebrowser.h b/utils/hlfaceposer/wavebrowser.h new file mode 100644 index 0000000..7959428 --- /dev/null +++ b/utils/hlfaceposer/wavebrowser.h @@ -0,0 +1,125 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef WAVEBROWSER_H +#define WAVEBROWSER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "mxtk/mxListView.h" +#include "commctrl.h" +#include "utldict.h" +#include "faceposertoolwindow.h" + +class CWaveFile; +class CWaveList; +class CWaveFileTree; +class CWaveOptionsWindow; +class CChoreoEvent; + +struct _IMAGELIST; +typedef struct _IMAGELIST NEAR* HIMAGELIST; + +enum +{ +/// IMAGE_WORKSPACE = 0, +// IMAGE_WORKSPACE_CHECKEDOUT, +// IMAGE_PROJECT, +// IMAGE_PROJECT_CHECKEDOUT, +// IMAGE_SCENE, +// IMAGE_SCENE_CHECKEDOUT, +// IMAGE_VCD, +// IMAGE_VCD_CHECKEDOUT, +// IMAGE_WAV, +// IMAGE_WAV_CHECKEDOUT, +// IMAGE_SPEAK, +// IMAGE_SPEAK_CHECKEDOUT, + + NUM_IMAGES, +}; + +class CWaveBrowser : public mxWindow, public IFacePoserToolWindow +{ + typedef mxWindow BaseClass; +public: + + CWaveBrowser( mxWindow *parent ); + + virtual void Think( float dt ); + + virtual int handleEvent( mxEvent *event ); + virtual void OnDelete(); + + void RepopulateTree(); + + void BuildSelectionList( CUtlVector< CWaveFile * >& selected ); + + void OnPlay(); + + void JumpToItem( CWaveFile *wav ); + + CWaveFile *FindEntry( char const *wavname, bool jump = false ); + + + int GetSoundCount() const; + CWaveFile *GetSound( int index ); + + void OnSearch(); + void OnCancelSearch(); + + HIMAGELIST CreateImageList(); + + void SetEvent( CChoreoEvent *event ); + void SetCurrent( char const *fn ); + +private: + + char const *GetSearchString(); + + bool LoadWaveFilesInDirectory( CUtlDict< CWaveFile *, int >& soundlist, char const* pDirectoryName, int nDirectoryNameLen ); + bool InitDirectoryRecursive( CUtlDict< CWaveFile *, int >& soundlist, char const* pDirectoryName ); + + void OnWaveProperties(); + void OnEnableVoiceDucking(); + void OnDisableVoiceDucking(); +// void OnCheckout(); +// void OnCheckin(); + + void OnImportSentence(); + void OnExportSentence(); + + void PopulateTree( char const *subdirectory ); + + void ShowContextMenu( void ); + + void LoadAllSounds(); + void RemoveAllSounds(); + + CWaveList *m_pListView; + + enum + { + NUM_BITMAPS = 6, + }; + + CUtlDict< CWaveFile *, int > m_AllSounds; + CUtlSymbolTable m_ScriptTable; + + CUtlVector< CUtlSymbol > m_Scripts; + + CWaveOptionsWindow *m_pOptions; + CWaveFileTree *m_pFileTree; + + CUtlVector< CWaveFile * > m_CurrentSelection; + + int m_nPrevProcessed; + bool m_bTextSearch; +}; + +extern CWaveBrowser *g_pWaveBrowser; + +#endif // WAVEBROWSER_H |