1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
/**
* @file ts2phc_pps_source.c
* @note Copyright (C) 2019 Richard Cochran <richardcochran@gmail.com>
* @note SPDX-License-Identifier: GPL-2.0+
*/
#include "ts2phc.h"
#include "ts2phc_generic_pps_source.h"
#include "ts2phc_nmea_pps_source.h"
#include "ts2phc_phc_pps_source.h"
#include "ts2phc_pps_source_private.h"
struct ts2phc_pps_source *ts2phc_pps_source_create(struct ts2phc_private *priv,
const char *dev,
enum ts2phc_pps_source_type type)
{
struct ts2phc_pps_source *src = NULL;
switch (type) {
case TS2PHC_PPS_SOURCE_GENERIC:
src = ts2phc_generic_pps_source_create(priv, dev);
break;
case TS2PHC_PPS_SOURCE_NMEA:
src = ts2phc_nmea_pps_source_create(priv, dev);
break;
case TS2PHC_PPS_SOURCE_PHC:
src = ts2phc_phc_pps_source_create(priv, dev);
break;
}
return src;
}
void ts2phc_pps_source_destroy(struct ts2phc_pps_source *src)
{
src->destroy(src);
}
int ts2phc_pps_source_getppstime(struct ts2phc_pps_source *src, struct timespec *ts)
{
return src->getppstime(src, ts);
}
struct ts2phc_clock *ts2phc_pps_source_get_clock(struct ts2phc_pps_source *src)
{
if (src->get_clock)
return src->get_clock(src);
return NULL;
}
|