You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
2.5 KiB
125 lines
2.5 KiB
//========= 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
|