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

Last change on this file since 1465 was 1465, checked in by phaller, 26 years ago

Fix: timeSetEvent hack for RA95

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