blob: ffd6f38d571d6cd0f6189e65737dfc376f0f7107 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#include "SkTime.h"
11
12#ifdef SK_BUILD_FOR_WIN
13
14#ifdef SK_DEBUG
15SkMSec gForceTickCount = (SkMSec) -1;
16#endif
17
18void SkTime::GetDateTime(DateTime* t)
19{
20 if (t)
21 {
22 SYSTEMTIME syst;
23
24 ::GetLocalTime(&syst);
25 t->fYear = SkToU16(syst.wYear);
26 t->fMonth = SkToU8(syst.wMonth);
27 t->fDayOfWeek = SkToU8(syst.wDayOfWeek);
28 t->fDay = SkToU8(syst.wDay);
29 t->fHour = SkToU8(syst.wHour);
30 t->fMinute = SkToU8(syst.wMinute);
31 t->fSecond = SkToU8(syst.wSecond);
32 }
33}
34
35SkMSec SkTime::GetMSecs()
36{
37#ifdef SK_DEBUG
38 if (gForceTickCount != (SkMSec) -1)
39 return gForceTickCount;
40#endif
41 return ::GetTickCount();
42}
43
44#elif defined(xSK_BUILD_FOR_MAC)
45
46#include <time.h>
47
48void SkTime::GetDateTime(DateTime* t)
49{
50 if (t)
51 {
52 tm syst;
53 time_t tm;
rmistry@google.comd6176b02012-08-23 18:14:13 +000054
reed@android.com8a1c16f2008-12-17 15:59:43 +000055 time(&tm);
56 localtime_r(&tm, &syst);
57 t->fYear = SkToU16(syst.tm_year);
58 t->fMonth = SkToU8(syst.tm_mon + 1);
59 t->fDayOfWeek = SkToU8(syst.tm_wday);
60 t->fDay = SkToU8(syst.tm_mday);
61 t->fHour = SkToU8(syst.tm_hour);
62 t->fMinute = SkToU8(syst.tm_min);
63 t->fSecond = SkToU8(syst.tm_sec);
64 }
65}
66
67#include "Sk64.h"
68
69SkMSec SkTime::GetMSecs()
70{
71 UnsignedWide wide;
72 Sk64 s;
73
74 ::Microseconds(&wide);
75 s.set(wide.hi, wide.lo);
76 s.div(1000, Sk64::kRound_DivOption);
77 return s.get32();
78}
79
80#endif