+bool MainInputManager::teletextState()
+{
+ im = getIM();
+ if( im->hasInput() )
+ {
+ vlc_value_t val;
+ vlc_object_t *p_vbi;
+ p_vbi = (vlc_object_t *) vlc_object_find_name( getInput(),
+ "zvbi", FIND_ANYWHERE );
+ if( p_vbi )
+ {
+ vlc_object_release( p_vbi );
+ return true;
+ }
+ var_Change( getInput(), "spu-es", VLC_VAR_CHOICESCOUNT, &val, NULL );
+ return (val.i_int > 0);
+ }
+ return false;
+}
+
+/* Static callbacks */
+
+/* IM */
+static int InterfaceChanged( vlc_object_t *p_this, const char *psz_var,
+ vlc_value_t oldval, vlc_value_t newval, void *param )
+{
+ static int counter = 0;
+ InputManager *im = (InputManager*)param;
+
+ counter = ++counter % 4;
+ if(!counter)
+ return VLC_SUCCESS;
+ IMEvent *event = new IMEvent( PositionUpdate_Type, 0 );
+ QApplication::postEvent( im, static_cast<QEvent*>(event) );
+ return VLC_SUCCESS;
+}
+
+static int ItemStateChanged( vlc_object_t *p_this, const char *psz_var,
+ vlc_value_t oldval, vlc_value_t newval, void *param )
+{
+ InputManager *im = (InputManager*)param;
+
+ IMEvent *event = new IMEvent( ItemStateChanged_Type, 0 );
+ QApplication::postEvent( im, static_cast<QEvent*>(event) );
+ return VLC_SUCCESS;
+}
+
+static int ItemRateChanged( vlc_object_t *p_this, const char *psz_var,
+ vlc_value_t oldval, vlc_value_t newval, void *param )
+{
+ InputManager *im = (InputManager*)param;
+
+ IMEvent *event = new IMEvent( ItemRateChanged_Type, 0 );
+ QApplication::postEvent( im, static_cast<QEvent*>(event) );
+ return VLC_SUCCESS;
+}
+
+static int ItemTitleChanged( vlc_object_t *p_this, const char *psz_var,
+ vlc_value_t oldval, vlc_value_t newval, void *param )
+{
+ InputManager *im = (InputManager*)param;
+
+ IMEvent *event = new IMEvent( ItemTitleChanged_Type, 0 );
+ QApplication::postEvent( im, static_cast<QEvent*>(event) );
+ return VLC_SUCCESS;
+}
+
+static int ItemChanged( vlc_object_t *p_this, const char *psz_var,
+ vlc_value_t oldval, vlc_value_t newval, void *param )