trunk/3rdparty/portmidi/porttime/ptlinux.c
| r248393 | r248394 | |
| 38 | 38 | #define FALSE 0 |
| 39 | 39 | |
| 40 | 40 | static int time_started_flag = FALSE; |
| 41 | | static struct timeb time_offset = {0, 0, 0, 0}; |
| 41 | static struct timeval time_offset = {0, 0}; |
| 42 | 42 | static pthread_t pt_thread_pid; |
| 43 | 43 | static int pt_thread_created = FALSE; |
| 44 | 44 | |
| r248393 | r248394 | |
| 79 | 79 | PtError Pt_Start(int resolution, PtCallback *callback, void *userData) |
| 80 | 80 | { |
| 81 | 81 | if (time_started_flag) return ptNoError; |
| 82 | | ftime(&time_offset); /* need this set before process runs */ |
| 82 | gettimeofday(&time_offset, NULL); /* need this set before process runs */ |
| 83 | 83 | if (callback) { |
| 84 | 84 | int res; |
| 85 | 85 | pt_callback_parameters *parms = (pt_callback_parameters *) |
| r248393 | r248394 | |
| 121 | 121 | PtTimestamp Pt_Time() |
| 122 | 122 | { |
| 123 | 123 | long seconds, milliseconds; |
| 124 | | struct timeb now; |
| 125 | | ftime(&now); |
| 126 | | seconds = now.time - time_offset.time; |
| 127 | | milliseconds = now.millitm - time_offset.millitm; |
| 124 | struct timeval now; |
| 125 | gettimeofday(&now, NULL); |
| 126 | seconds = now.tv_sec - time_offset.tv_sec; |
| 127 | milliseconds = now.tv_usec - time_offset.tv_usec; |
| 128 | 128 | return seconds * 1000 + milliseconds; |
| 129 | 129 | } |
| 130 | 130 | |