source: trunk/src/winmm/time.cpp@ 2812

Last change on this file since 2812 was 2812, checked in by sandervl, 26 years ago

Added new logging feature + fixed waveout query format bug

File size: 5.9 KB
Line 
1/* $Id: time.cpp,v 1.9 2000-02-17 14:09:32 sandervl Exp $ */
2
3/*
4 * Timer MM apis
5 *
6 * Copyright 1998 Sander van Leeuwen (sandervl@xs4all.nl)
7 * Copyright 1999 Patrick Haller (phaller@gmx.net)
8 *
9 * Project Odin Software License can be found in LICENSE.TXT
10 *
11 */
12
13
14/****************************************************************************
15 * Includes *
16 ****************************************************************************/
17#include <os2win.h>
18#include <odinwrap.h>
19#include <misc.h>
20
21#include "os2timer.h"
22#include "time.h"
23
24#define DBG_LOCALLOG DBG_time
25#include "dbglocal.h"
26
27ODINDEBUGCHANNEL(WINMM-TIME)
28
29
30
31/*****************************************************************************
32 * Name : mmsystemGetVersion
33 * Purpose : determine version of MM system
34 * Parameters:
35 * Variables :
36 * Result :
37 * Remark :
38 * Status : UNTESTED STUB
39 *
40 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
41 *****************************************************************************/
42
43
44ODINFUNCTION0(UINT, mmsystemGetVersion)
45{
46 return 4;
47}
48
49
50/*****************************************************************************
51 * Name :
52 * Purpose :
53 * Parameters:
54 * Variables :
55 * Result :
56 * Remark :
57 * Status : UNTESTED STUB
58 *
59 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
60 *****************************************************************************/
61
62ODINFUNCTION2(MMRESULT, timeGetDevCaps,
63 LPTIMECAPS, ptc,
64 UINT, cbtc)
65{
66 dprintf(("WINMM:timeGetDevCaps Not really Implemented\n"));
67
68 ptc->wPeriodMin = OS2TIMER_RESOLUTION_MINIMUM;
69 ptc->wPeriodMax = OS2TIMER_RESOLUTION_MAXIMUM;
70
71 return TIMERR_NOERROR;
72}
73
74
75/*****************************************************************************
76 * Name :
77 * Purpose :
78 * Parameters:
79 * Variables :
80 * Result :
81 * Remark :
82 * Status : UNTESTED STUB
83 *
84 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
85 *****************************************************************************/
86
87ODINFUNCTION1(MMRESULT, timeBeginPeriod,
88 UINT, cMilliseconds)
89{
90 if (TRUE == OS2TimerResolution::enterResolutionScope(cMilliseconds))
91 return TIMERR_NOERROR;
92 else
93 return TIMERR_NOCANDO;
94}
95
96
97/*****************************************************************************
98 * Name :
99 * Purpose :
100 * Parameters:
101 * Variables :
102 * Result :
103 * Remark :
104 * Status : UNTESTED STUB
105 *
106 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
107 *****************************************************************************/
108
109ODINFUNCTION1(MMRESULT, timeEndPeriod,
110 UINT, cMilliseconds)
111{
112 if (TRUE == OS2TimerResolution::leaveResolutionScope(cMilliseconds))
113 return TIMERR_NOERROR;
114 else
115 {
116 dprintf(("WINMM: timeEndPeriod didn't match timeBeginPeriod.\n"));
117 return TIMERR_NOCANDO;
118 }
119}
120
121
122/*****************************************************************************
123 * Name :
124 * Purpose :
125 * Parameters:
126 * Variables :
127 * Result :
128 * Remark :
129 * Status : UNTESTED STUB
130 *
131 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
132 *****************************************************************************/
133
134ODINFUNCTION1(MMRESULT, timeKillEvent,
135 UINT, IDEvent)
136{
137 dprintf(("WINMM:timeKillEvent\n"));
138
139 // return OS2Timer::killEvent(UINT IDEvent)
140
141 delete((OS2Timer *)IDEvent);
142 return TIMERR_NOERROR;
143}
144
145
146/*****************************************************************************
147 * Name :
148 * Purpose :
149 * Parameters:
150 * Variables :
151 * Result :
152 * Remark :
153 * Status : UNTESTED STUB
154 *
155 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
156 *****************************************************************************/
157
158ODINFUNCTION5(MMRESULT, timeSetEvent,
159 UINT, wDelay,
160 UINT, wResolution,
161 LPTIMECALLBACK, lptc,
162 DWORD, dwUser,
163 UINT, fuEvent)
164{
165 OS2Timer *timer;
166
167// @@@PH 1999/10/26 hack for RA95
168 if (wDelay < OS2TIMER_RESOLUTION_MINIMUM)
169 {
170 dprintf(("WINMM:Time:timeSetEvent - Warning: requested delay too low (%08xh)\n",
171 wDelay));
172 wDelay = OS2TIMER_RESOLUTION_MINIMUM;
173 }
174
175 if (wResolution < OS2TIMER_RESOLUTION_MINIMUM)
176 {
177 dprintf(("WINMM:Time:timeSetEvent - Warning: requested resolution too low (%08xh)\n",
178 wResolution));
179 wResolution = OS2TIMER_RESOLUTION_MINIMUM;
180 }
181
182
183 // check parameters
184 if ((wDelay < OS2TIMER_RESOLUTION_MINIMUM) ||
185 (wDelay > OS2TIMER_RESOLUTION_MAXIMUM))
186 return NULL;
187
188 if (wResolution == 0)
189 wResolution = OS2TIMER_RESOLUTION_MINIMUM;
190 else
191 if ((wResolution < OS2TIMER_RESOLUTION_MINIMUM) ||
192 (wResolution > OS2TIMER_RESOLUTION_MAXIMUM))
193 return NULL;
194
195 timer = new OS2Timer();
196 if(timer == NULL)
197 return(0);
198
199 if(timer->StartTimer(wDelay, wResolution, lptc, dwUser, fuEvent) == FALSE)
200 {
201 dprintf(("WINMM:timeSetEvent: couldn't start timer!\n"));
202 delete(timer);
203 return(0);
204 }
205 return(MMRESULT)timer;
206}
207
208
209/*****************************************************************************
210 * Name :
211 * Purpose :
212 * Parameters:
213 * Variables :
214 * Result :
215 * Remark :
216 * Status : UNTESTED STUB
217 *
218 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
219 *****************************************************************************/
220
221ODINFUNCTION2(MMRESULT, timeGetSystemTime,
222 LPMMTIME, arg1,
223 UINT, arg2)
224{
225 return O32_timeGetSystemTime(arg1, arg2);
226}
227
228
229/*****************************************************************************
230 * Name :
231 * Purpose :
232 * Parameters:
233 * Variables :
234 * Result :
235 * Remark :
236 * Status : UNTESTED STUB
237 *
238 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
239 *****************************************************************************/
240
241DWORD WIN32API timeGetTime()
242{
243 return O32_timeGetTime();
244}
245
Note: See TracBrowser for help on using the repository browser.