~ubuntu-branches/ubuntu/vivid/sflphone/vivid

1.1.9 by Mark Purcell
Import upstream version 1.2.2
1
/* $Id: os_time_common.c 3553 2011-05-05 06:14:19Z nanang $ */
2
/*
3
 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4
 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5
 *
6
 * This program is free software; you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation; either version 2 of the License, or
9
 * (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
 */
20
#include <pj/os.h>
21
#include <pj/compat/time.h>
22
#include <pj/errno.h>
23
24
25
///////////////////////////////////////////////////////////////////////////////
26
27
PJ_DEF(pj_status_t) pj_time_decode(const pj_time_val *tv, pj_parsed_time *pt)
28
{
29
    struct tm *local_time;
30
31
    PJ_CHECK_STACK();
32
33
    local_time = localtime((time_t*)&tv->sec);
34
35
    pt->year = local_time->tm_year+1900;
36
    pt->mon = local_time->tm_mon;
37
    pt->day = local_time->tm_mday;
38
    pt->hour = local_time->tm_hour;
39
    pt->min = local_time->tm_min;
40
    pt->sec = local_time->tm_sec;
41
    pt->wday = local_time->tm_wday;
42
    pt->msec = tv->msec;
43
44
    return PJ_SUCCESS;
45
}
46
47
/**
48
 * Encode parsed time to time value.
49
 */
50
PJ_DEF(pj_status_t) pj_time_encode(const pj_parsed_time *pt, pj_time_val *tv)
51
{
52
    struct tm local_time;
53
54
    local_time.tm_year = pt->year-1900;
55
    local_time.tm_mon = pt->mon;
56
    local_time.tm_mday = pt->day;
57
    local_time.tm_hour = pt->hour;
58
    local_time.tm_min = pt->min;
59
    local_time.tm_sec = pt->sec;
60
    local_time.tm_isdst = 0;
61
62
    tv->sec = mktime(&local_time);
63
    tv->msec = pt->msec;
64
65
    return PJ_SUCCESS;
66
}
67
68
/**
69
 * Convert local time to GMT.
70
 */
71
PJ_DEF(pj_status_t) pj_time_local_to_gmt(pj_time_val *tv)
72
{
73
    PJ_UNUSED_ARG(tv);
74
    return PJ_EBUG;
75
}
76
77
/**
78
 * Convert GMT to local time.
79
 */
80
PJ_DEF(pj_status_t) pj_time_gmt_to_local(pj_time_val *tv)
81
{
82
    PJ_UNUSED_ARG(tv);
83
    return PJ_EBUG;
84
}