本文整理汇总了C++中fmod::System::setPluginPath方法的典型用法代码示例。如果您正苦于以下问题:C++ System::setPluginPath方法的具体用法?C++ System::setPluginPath怎么用?C++ System::setPluginPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fmod::System
的用法示例。
在下文中一共展示了System::setPluginPath方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _ThreadBusqueda
unsigned long ThreadBuscarArchivos::_ThreadBusqueda(void *pThis) {
size_t i = 0;
ThreadBuscarArchivos *This = reinterpret_cast<ThreadBuscarArchivos *>(pThis);
This->_Mutex = CreateMutex(NULL, FALSE, TEXT("Mutex_ThreadBuscarArchivos"));
// This->_Buscando = true;
DWL::DWLString *TmpStr = NULL;
// Inicio la VLC para el analisis
DWL::DWLString PluginPath;
PluginPath.sprintf(TEXT("--plugin-path=%s%s"), This->_PathApp(), PATHVLC_PLUGINS);
ArgumentosVLC ArgsVLC;
ArgsVLC.AgregarArgumento(This->_PathApp()); // Path de la aplicación
ArgsVLC.AgregarArgumento(PluginPath()); // Path del directorio de plugins
libvlc_instance_t *InstanciaVLC = libvlc_new(ArgsVLC.TotalArgumentos(), ArgsVLC());
// Inicio el FMOD para el analisis
FMOD::System *InstanciaFMOD;
FMOD_RESULT FmodErrorCode = FMOD_OK;
FmodErrorCode = FMOD::System_Create(&InstanciaFMOD);
// - Obtengo el path de los pluguins
DWL::DWLString CodecsPath = This->_PathApp(); CodecsPath += TEXT("Plugins\\FMOD");
// - Paso el path de unicode a ascii
char CodecsPathAscii[MAX_PATH + 1] = "";
WideCharToMultiByte(CP_OEMCP, WC_NO_BEST_FIT_CHARS, CodecsPath(), static_cast<int>(CodecsPath.Tam()) + 1, CodecsPathAscii, MAX_PATH + 1, NULL, NULL);
FmodErrorCode = InstanciaFMOD->setPluginPath(CodecsPathAscii);
// Inicio el sonido con 16 canales
FmodErrorCode = InstanciaFMOD->init(16, FMOD_INIT_NORMAL, NULL);
// Busco en todas las rutas
for (i = 0; i < This->_PathsBuscar.size(); i++) This->_BusquedaRecursiva(This->_PathsBuscar[i].Path());
PostMessage(This->_hWndCP, MENSAJE_OBTENIENDO_DATOS_MEDIOS, static_cast<WPARAM>(This->_PathsEncontrados.size()), NULL);
// Ya tengo todos los paths, ahora los escaneamos
InformacionArchivoEx *Info = NULL;
// libvlc_time_t TiempoTotal;
// bool EsVideo;
for (i = 0; i < This->_PathsEncontrados.size(); i++) {
if (This->_Mutex) WaitForSingleObject(This->_Mutex, INFINITE);
// This->_VentanaLog->AgregarMensaje(Log_BubaTronik, Log_Info, "Analizando :", This->_PathsEncontrados[i].Texto());
if (SendMessage(This->_hWndCP, MENSAJE_MEDIO_NO_EXISTE, reinterpret_cast<WPARAM>(This->_PathsEncontrados[i].Texto()), 0) == 1) {
SOLO_DEBUG(DWL::DWLDebug::ImprimirDebug(This->_PathsEncontrados[i].Texto()));
SOLO_DEBUG(DWL::DWLDebug::ImprimirDebug(TEXT("\n")));
Info = new InformacionArchivoEx;
TmpStr = new DWL::DWLString(This->_PathsEncontrados[i].Texto());
PostMessage(This->_hWndCP, MENSAJE_MEDIO_ANALIZANDO, reinterpret_cast<WPARAM>(TmpStr), NULL);
TMedio *TM = Info->ObtenerInfo(This->_PathsEncontrados[i].Texto(), This->_TipoArchivo, This->_Unidades, This->_PathsBuscar, InstanciaVLC, InstanciaFMOD);
if (TM != NULL) PostMessage(This->_hWndCP, MENSAJE_MEDIO_ANALIZADO, reinterpret_cast<WPARAM>(TM), NULL);
else PostMessage(This->_hWndCP, MENSAJE_MEDIO_INVALIDO, reinterpret_cast<WPARAM>(TM), NULL);
delete Info;
}
if (This->_Cancelar == true) {
if (This->_Mutex) ReleaseMutex(This->_Mutex);
break;
}
if (This->_Mutex) ReleaseMutex(This->_Mutex);
}
// ReleaseMutex(This->_Mutex);
// Termino la instancia de la VLC
libvlc_release(InstanciaVLC);
// Termino la instancia del FMOD
InstanciaFMOD->close();
InstanciaFMOD->release();
// Cierro el mutex, y informo a la ventana del reproductor que ya se ha terminado
if (This->_Mutex) CloseHandle(This->_Mutex);
This->_Mutex = NULL;
PostMessage(This->_hWndCP, MENSAJE_BUSCAR_ARCHIVOS_TERMINADO, NULL, NULL);
// MessageBox(NULL, TEXT("Terminado"), TEXT("Terminado"), MB_OK);
return 0;
}
示例2: main
int main(int argc, char *argv[])
{
FMOD::System *system = 0;
FMOD::Sound *sound = 0;
FMOD::Channel *channel = 0;
FMOD_RESULT result;
int count;
bool playing = false;
int key, numoutputplugins;
unsigned int version;
unsigned int handle;
/*
Create a System object and initialize.
*/
result = FMOD::System_Create(&system);
ERRCHECK(result);
result = system->getVersion(&version);
ERRCHECK(result);
if (version < FMOD_VERSION)
{
printf("Error! You are using an old version of FMOD %08x. This program requires %08x\n", version, FMOD_VERSION);
return 0;
}
/*
Set the source directory for all of the FMOD plugins.
*/
#ifdef _WIN64
result = system->setPluginPath("../../api/plugins/64bit");
#else
result = system->setPluginPath("../../api/plugins");
#endif
ERRCHECK(result);
/*
Load up an extra plugin that is not normally used by FMOD.
*/
#ifdef _WIN64
result = system->loadPlugin("output_mp364.dll", 0, 0);
#else
result = system->loadPlugin("output_mp3.dll", 0, 0);
#endif
if (result == FMOD_ERR_FILE_NOTFOUND)
{
/*
If it isn't in the same directory, try for the plugin directory.
*/
#ifdef _WIN64
result = system->loadPlugin("../plugin_dev/output_mp3/output_mp364.dll", 0, 0);
#else
result = system->loadPlugin("../plugin_dev/output_mp3/output_mp3.dll", 0, 0);
#endif
ERRCHECK(result);
}
/*
Display plugins
*/
{
int num;
char name[256];
printf("Codec plugins\n");
printf("--------------\n");
result = system->getNumPlugins(FMOD_PLUGINTYPE_CODEC, &num);
ERRCHECK(result);
for (count = 0; count < num; count++)
{
result = system->getPluginHandle(FMOD_PLUGINTYPE_CODEC, count, &handle);
ERRCHECK(result);
result = system->getPluginInfo(handle, 0, name, 256, 0);
ERRCHECK(result);
printf("%2d - %-30s", count + 1, name);
if (count % 2)
{
printf("\n");
}
}
printf("\n");
if (count % 2)
{
printf("\n");
}
printf("DSP plugins\n");
printf("--------------\n");
result = system->getNumPlugins(FMOD_PLUGINTYPE_DSP, &num);
ERRCHECK(result);
for (count = 0; count < num; count++)
{
result = system->getPluginHandle(FMOD_PLUGINTYPE_DSP, count, &handle);
ERRCHECK(result);
//.........这里部分代码省略.........