mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================//
|
||||
#include "cbase.h"
|
||||
#include <mxtk/mx.h>
|
||||
#include <stdio.h>
|
||||
#include "resource.h"
|
||||
#include "WaveProperties.h"
|
||||
#include "SoundEmitterSystem/isoundemittersystembase.h"
|
||||
#include "soundentry.h"
|
||||
#include "cmdlib.h"
|
||||
#include "workspacemanager.h"
|
||||
#include "wavebrowser.h"
|
||||
#include "wavefile.h"
|
||||
#include "multiplerequest.h"
|
||||
|
||||
static CWaveParams g_Params;
|
||||
|
||||
static bool WaveLessFunc( const char *const& name1, const char *const& name2 )
|
||||
{
|
||||
if ( stricmp( name1, name2 ) < 0 )
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
static void WaveProperties_OnOK( HWND hwndDlg )
|
||||
{
|
||||
// Gather info and make changes
|
||||
CWaveFile *item = g_Params.items[ 0 ];
|
||||
char sentencetext[ 512 ];
|
||||
|
||||
GetDlgItemText( hwndDlg, IDC_SENTENCETEXT, sentencetext, sizeof( sentencetext ) );
|
||||
|
||||
bool voiceduck = SendMessage( GetDlgItem( hwndDlg, IDC_VOICEDUCK ), BM_GETCHECK, 0, 0 ) == BST_CHECKED ? true : false;
|
||||
|
||||
MultipleRequestChangeContext();
|
||||
|
||||
// Update ducking on wav files
|
||||
item->SetVoiceDuck( voiceduck );
|
||||
item->SetSentenceText( sentencetext );
|
||||
|
||||
// Repopulate things
|
||||
GetWorkspaceManager()->RefreshBrowsers();
|
||||
}
|
||||
|
||||
char *Q_stristr_slash( char const *pStr, char const *pSearch );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
// Input : hwndDlg -
|
||||
//-----------------------------------------------------------------------------
|
||||
static void WaveProperties_ExportSentence()
|
||||
{
|
||||
int c = g_Params.items.Count();
|
||||
if ( c <= 0 )
|
||||
return;
|
||||
|
||||
MultipleRequestChangeContext();
|
||||
|
||||
int i;
|
||||
for ( i = 0; i < c; i++ )
|
||||
{
|
||||
CWaveFile *item = g_Params.items[ i ];
|
||||
Assert( item );
|
||||
|
||||
char relative[ 512 ];
|
||||
item->GetPhonemeExportFile( relative, sizeof( relative ) );
|
||||
if ( filesystem->FileExists( relative ) )
|
||||
{
|
||||
int retval = MultipleRequest( va( "Overwrite '%s'?", relative ) );
|
||||
if ( retval != 0 )
|
||||
continue;
|
||||
|
||||
filesystem->RemoveFile( relative );
|
||||
}
|
||||
|
||||
item->ExportValveDataChunk( relative );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
// Input : hwndDlg -
|
||||
//-----------------------------------------------------------------------------
|
||||
static void WaveProperties_ImportSentence()
|
||||
{
|
||||
int c = g_Params.items.Count();
|
||||
if ( c <= 0 )
|
||||
return;
|
||||
|
||||
int i;
|
||||
for ( i = 0; i < c; i++ )
|
||||
{
|
||||
CWaveFile *item = g_Params.items[ i ];
|
||||
Assert( item );
|
||||
|
||||
char relative[ 512 ];
|
||||
item->GetPhonemeExportFile( relative, sizeof( relative ) );
|
||||
if ( filesystem->FileExists( relative ) )
|
||||
{
|
||||
item->ImportValveDataChunk( relative );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
// Input : hwndDlg -
|
||||
// Output : static
|
||||
//-----------------------------------------------------------------------------
|
||||
static void WaveProperties_InitSentenceData( HWND hwndDlg )
|
||||
{
|
||||
CWaveFile *item = g_Params.items[ 0 ];
|
||||
|
||||
SetDlgItemText( hwndDlg, IDC_WAVENAME, item->GetName() );
|
||||
SetDlgItemText( hwndDlg, IDC_SENTENCETEXT, item->GetSentenceText() );
|
||||
|
||||
SendMessage( GetDlgItem( hwndDlg, IDC_VOICEDUCK ), BM_SETCHECK,
|
||||
( WPARAM ) item->GetVoiceDuck() ? BST_CHECKED : BST_UNCHECKED,
|
||||
( LPARAM )0 );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
// Input : hwndDlg -
|
||||
// uMsg -
|
||||
// wParam -
|
||||
// lParam -
|
||||
// Output : static BOOL CALLBACK
|
||||
//-----------------------------------------------------------------------------
|
||||
static BOOL CALLBACK WavePropertiesDialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
|
||||
{
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
g_Params.PositionSelf( hwndDlg );
|
||||
|
||||
WaveProperties_InitSentenceData( hwndDlg );
|
||||
|
||||
SetWindowText( hwndDlg, g_Params.m_szDialogTitle );
|
||||
|
||||
SetFocus( GetDlgItem( hwndDlg, IDC_WAVENAME ) );
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDOK:
|
||||
{
|
||||
WaveProperties_OnOK( hwndDlg );
|
||||
|
||||
EndDialog( hwndDlg, 1 );
|
||||
}
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog( hwndDlg, 0 );
|
||||
break;
|
||||
case IDC_EXPORTSENTENCE:
|
||||
WaveProperties_ExportSentence();
|
||||
break;
|
||||
case IDC_IMPORTSENTENCE:
|
||||
WaveProperties_ImportSentence();
|
||||
WaveProperties_InitSentenceData( hwndDlg );
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
// Input : *view -
|
||||
// *actor -
|
||||
// Output : int
|
||||
//-----------------------------------------------------------------------------
|
||||
int WaveProperties( CWaveParams *params )
|
||||
{
|
||||
g_Params = *params;
|
||||
|
||||
int retval = DialogBox( (HINSTANCE)GetModuleHandle( 0 ),
|
||||
MAKEINTRESOURCE( IDD_WAVEPROPERTIES ),
|
||||
(HWND)GetWorkspaceManager()->getHandle(),
|
||||
(DLGPROC)WavePropertiesDialogProc );
|
||||
|
||||
*params = g_Params;
|
||||
|
||||
return retval;
|
||||
}
|
||||
Reference in New Issue
Block a user