28.11.2012 Views

Procesamiento digital de video en tiempo real y - Maestría en ...

Procesamiento digital de video en tiempo real y - Maestría en ...

Procesamiento digital de video en tiempo real y - Maestría en ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Procesami<strong>en</strong>to</strong> <strong>digital</strong> <strong>de</strong> vi<strong>de</strong>o <strong>en</strong> <strong>tiempo</strong> <strong>real</strong> y “vi<strong>de</strong>o wall” con la PC 122<br />

#<strong>en</strong>dif<br />

// Despliega los nombres <strong>de</strong> archivo <strong>en</strong> la caja <strong>de</strong> m<strong>en</strong>sajes<br />

void Msg(char *szFormat, ...)<br />

{<br />

TCHAR szBuffer[512]; // Buffer gran<strong>de</strong> para nombres <strong>de</strong> archivos largos como los HTTTP<br />

}<br />

va_list pArgs;<br />

va_start(pArgs, szFormat);<br />

vsprintf(szBuffer, szFormat, pArgs);<br />

va_<strong>en</strong>d(pArgs);<br />

MessageBox(NULL, szBuffer, "UAM Multimedia", MB_OK);<br />

// Función para activar el sil<strong>en</strong>cio shhh...<br />

HRESULT ToggleMute(void)<br />

{<br />

HRESULT hr=S_OK;<br />

}<br />

if ((!pGB) || (!pBA))<br />

return S_OK;<br />

// Read curr<strong>en</strong>t volume<br />

hr = pBA->get_Volume(&g_lVolume);<br />

if (hr == E_NOTIMPL)<br />

{<br />

// Falla si este es un archivo <strong>de</strong> solo vi<strong>de</strong>o<br />

return S_OK;<br />

}<br />

else if (FAILED(hr))<br />

{<br />

Msg(TEXT("Fallo al leer el volum<strong>en</strong> <strong>de</strong> audio ! hr=0x%x\r\n"), hr);<br />

return hr;<br />

}<br />

// Cambia los niveles <strong>de</strong> volum<strong>en</strong><br />

if (g_lVolume == VOLUME_FULL)<br />

g_lVolume = VOLUME_SILENCE;<br />

else<br />

g_lVolume = VOLUME_FULL;<br />

// Ajusta el nuevo volum<strong>en</strong><br />

JIF(pBA->put_Volume(g_lVolume));<br />

UpdateMainTitle();<br />

return hr;<br />

// Función que actualiza la etiqueta que actualiza el estado actual <strong>de</strong>l streaming<br />

void UpdateMainTitle(void)<br />

{<br />

TCHAR szTitle[MAX_PATH], szFile[MAX_PATH];<br />

// Si ningun archivo es cargado, solo muestra el titulo <strong>de</strong> la aplicacion<br />

if (g_szFileName[0] == L'\0')<br />

{<br />

wsprintf(szTitle, TEXT("%s"), APPLICATIONNAME);<br />

}<br />

// De otro modo, muestra información <strong>en</strong> uso, incluy<strong>en</strong>do nombre <strong>de</strong> archivo y estado<br />

<strong>de</strong> ejecución<br />

else<br />

{<br />

// Obti<strong>en</strong>e nombre <strong>de</strong> archivo sin path completo<br />

GetFil<strong>en</strong>ame(g_szFileName, szFile);<br />

// Actualiza el titulo <strong>de</strong> la v<strong>en</strong>tana para mostrar el estado<br />

Sil<strong>en</strong>cio/Sonido<br />

wsprintf(szTitle, TEXT("%s [%s] %s%s"),

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!