+ intf_thread_t *pIntf = (intf_thread_t *)pWnd->p_private;
+ VlcProc *pThis = pIntf->p_sys->p_vlcProc;
+
+ switch( query )
+ {
+ case VOUT_SET_SIZE:
+ {
+ if( pThis->m_pVout )
+ {
+ unsigned int i_width = va_arg( args, unsigned int );
+ unsigned int i_height = va_arg( args, unsigned int );
+ if( !i_width ) i_width = pThis->m_pVout->i_window_width;
+ if( !i_height ) i_height = pThis->m_pVout->i_window_height;
+
+ // Post a resize vout command
+ CmdResizeVout *pCmd =
+ new CmdResizeVout( pThis->getIntf(), pWnd->handle.hwnd,
+ i_width, i_height );
+ AsyncQueue *pQueue = AsyncQueue::instance( pThis->getIntf() );
+ pQueue->push( CmdGenericPtr( pCmd ) );
+ }
+ }
+
+ default:
+ msg_Dbg( pWnd, "control query not supported" );
+ break;
+ }
+
+ return VLC_SUCCESS;
+}
+
+
+int VlcProc::onEqBandsChange( vlc_object_t *pObj, const char *pVariable,
+ vlc_value_t oldVal, vlc_value_t newVal,
+ void *pParam )
+{
+ VlcProc *pThis = (VlcProc*)pParam;
+
+ // Post a set equalizer bands command
+ CmdSetEqBands *pCmd = new CmdSetEqBands( pThis->getIntf(),
+ pThis->m_varEqBands,
+ newVal.psz_string );
+ AsyncQueue *pQueue = AsyncQueue::instance( pThis->getIntf() );
+ pQueue->push( CmdGenericPtr( pCmd ) );
+
+ return VLC_SUCCESS;
+}
+
+
+int VlcProc::onEqPreampChange( vlc_object_t *pObj, const char *pVariable,
+ vlc_value_t oldVal, vlc_value_t newVal,
+ void *pParam )
+{
+ VlcProc *pThis = (VlcProc*)pParam;
+ EqualizerPreamp *pVarPreamp = (EqualizerPreamp*)(pThis->m_cVarEqPreamp.get());
+
+ // Post a set preamp command
+ CmdSetEqPreamp *pCmd = new CmdSetEqPreamp( pThis->getIntf(), *pVarPreamp,
+ (newVal.f_float + 20.0) / 40.0 );
+ AsyncQueue *pQueue = AsyncQueue::instance( pThis->getIntf() );
+ pQueue->push( CmdGenericPtr( pCmd ) );
+