     Stream, StreamParam(..), Speed(..), NormalSpeed(..), Zoom(..),
     AspectRatio(..), MRL, EngineParam(..), Affection(..), TrickMode(..),
     xine_stream_new, xine_stream_master_slave, xine_open, xine_play,
+    xine_dispose, xine_eject,
     xine_trick_mode, xine_stop, xine_close, xine_engine_set_param,
     xine_engine_get_param, xine_set_param, xine_get_param,
     -- * Information retrieval
     EngineStatus(..), XineError(..),
-    xine_get_error, xine_get_status
+    xine_get_error, xine_get_status,
+    xine_get_audio_lang, xine_get_spu_lang,
+    xine_get_pos_length,
+    InfoType(..), MetaType(..),
+    xine_get_stream_info, xine_get_meta_info
     ) where
 
 import Control.Monad (liftM)

-- int xine_get_status (xine_stream_t *stream)
{#fun unsafe xine_get_status
 {withStream* `Stream'} -> `EngineStatus' cint2enum#}

-- void xine_close (xine_stream_t *stream)
{#fun unsafe xine_close {withStream* `Stream'} -> `()'#}

-- | Ask current input plugin to eject media.
--
-- Header declaration:
--
-- int xine_eject (xine_stream_t *stream)
{#fun unsafe xine_eject {withStream* `Stream'} -> `Int' cint2int#}

-- | Stop playback, dispose all stream-related resources.
-- The stream is no longer valid after this.
--
-- Header declaration:
--
-- void xine_dispose (xine_stream_t *stream)
{#fun unsafe xine_dispose {withStream* `Stream'} -> `()'#}

-- | Set engine parameter.
--
-- Header declaration:
