From: M G. <el...@al...> - 2002-01-14 02:37:54
|
Thomas, These should get you up and running. I use the multimedia timer ( winmm.lib ) and a win32 event/signal to mimic the functionality of setitimer, sigalarm and pause. If you improve or fix any blundering errors, please let me know. I skimmed over the vlc code and it looks like they may have a more accurate method of retrieving time and it might be worth playing with. As for the wakeup timers resolution, we are unfortuantely limited to about ~10ms min intervals. ( seems to work alright ) Very soon ( ~ week, maybe 2 ) I will be releasing a more or less complete port of xine for win32. If you want to look at what I have sooner, let me know and I will send you a tarball. Hope this helps ... -Matthew /* this function returns somewhat accurate unix time with the date accurate to the first call to get of day and the resolution accurate to ~ miliseconds. */ static time_t startseconds = 0; int gettimeofday( struct timeval *tp, struct timezone *tzp ) { MMTIME mmtime; // clock() returns time in miliseconds if( !startseconds ) startseconds = time( 0 ); timeGetSystemTime( &mmtime, sizeof( mmtime ) ); tp->tv_sec = ( mmtime.u.ms / 1000 ) + startseconds; tp->tv_usec = ( mmtime.u.ms % 1000 ) * 1000; return 0; }; /* These functions are designed to mimick a subset of itimer for use with an alarm signal on win32. This is just enough to get xine up and running. */ static HANDLE sigalarm = 0; int setitimer( int which, struct itimerval * value, struct itimerval *ovalue ) { long int miliseconds; if( !sigalarm ) sigalarm = CreateEvent( 0, FALSE, TRUE, "SIGALARM" ); miliseconds = value->it_value.tv_usec / 1000; timeSetEvent( miliseconds, 0, ( LPTIMECALLBACK ) sigalarm, 0, TIME_PERIODIC | TIME_CALLBACK_EVENT_PULSE ); return 0; } /* Wait for sigalarm to wake the thread */ int pause( void ) { WaitForSingleObject( sigalarm, INFINITE ); return 0; } On Sun, 13 January 2002, Thomas Fjellstrom wrote: > > On January 13, 2002 01:27 am, you wrote: > > Hello, > > > > I have a mostly complete port of xine to win32. I am doing mostly bug > > fixes and gui work at the moment. Most of the problems you will encounter I > > most likely have already created solutions for. Although I am not using the > > ming32 compiler ( msvc ) I am using pthreads and a few packages from the > > cygwin project. I also have working directx plugins for both video ( ddraw > > ) and audio ( dsound ). Are you interested in sharing code? > > > > Yes very much so, but i fear my bits to share won't be that interesting, so > far I have a video and sound driver that uses Allegro (http://alleg.sf.net), > and some changes so it actually compiles with the msvcrt.dll version of > mingw32. Also we are using pthreads, and the only real problem a this moment > is what to do in place of the sig* functions. > > -- > Thomas Fjellstrom > tfj...@sh... > http://strangesoft.net Find the best deals on the web at AltaVista Shopping! http://www.shopping.altavista.com |