-#ifndef __PLUGIN__
-char * mstrtime ( char *psz_buffer, mtime_t date );
-mtime_t mdate ( void );
-void mwait ( mtime_t date );
-void msleep ( mtime_t delay );
-#else
-# define msleep p_symbols->msleep
-# define mdate p_symbols->mdate
-# define mstrtime p_symbols->mstrtime
-#endif
+VLC_EXPORT( char *, mstrtime, ( char *psz_buffer, mtime_t date ) );
+VLC_EXPORT( mtime_t, mdate, ( void ) );
+VLC_EXPORT( void, mwait, ( mtime_t date ) );
+VLC_EXPORT( void, msleep, ( mtime_t delay ) );
+VLC_EXPORT( char *, secstotimestr, ( char *psz_buffer, int secs ) );
+
+/*****************************************************************************
+ * date_t: date incrementation without long-term rounding errors
+ *****************************************************************************/
+struct date_t
+{
+ mtime_t date;
+ uint32_t i_divider_num;
+ uint32_t i_divider_den;
+ uint32_t i_remainder;
+};