#ifndef foopulsetimesmoother2hfoo #define foopulsetimesmoother2hfoo /*** This file is part of PulseAudio. PulseAudio is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. PulseAudio is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with PulseAudio; if not, see . ***/ #include typedef struct pa_smoother_2 pa_smoother_2; /* Create new smoother */ pa_smoother_2* pa_smoother_2_new(pa_usec_t window, pa_usec_t time_stamp, uint32_t frame_size, uint32_t rate); /* Free the smoother */ void pa_smoother_2_free(pa_smoother_2* s); /* Reset the smoother */ void pa_smoother_2_reset(pa_smoother_2 *s, pa_usec_t time_stamp); /* Pause the smoother */ void pa_smoother_2_pause(pa_smoother_2 *s, pa_usec_t time_stamp); /* Resume the smoother */ void pa_smoother_2_resume(pa_smoother_2 *s, pa_usec_t time_stamp); /* Add a new data point and re-calculate time conversion factor */ void pa_smoother_2_put(pa_smoother_2 *s, pa_usec_t time_stamp, int64_t byte_count); /* Calculate the current latency. For a source, the sign of the result must be inverted */ int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, uint64_t byte_count); /* Convert system time since start to sound card time */ pa_usec_t pa_smoother_2_get(pa_smoother_2 *s, pa_usec_t time_stamp); /* Convert a time interval from sound card time to system time */ pa_usec_t pa_smoother_2_translate(pa_smoother_2 *s, pa_usec_t time_difference); /* Enable USB hack, only used for alsa sinks */ void pa_smoother_2_usb_hack_enable(pa_smoother_2 *s, bool enable, pa_usec_t offset); /* Set sample rate */ void pa_smoother_2_set_rate(pa_smoother_2 *s, pa_usec_t time_stamp, uint32_t rate); /* Set rate and frame size */ void pa_smoother_2_set_sample_spec(pa_smoother_2 *s, pa_usec_t time_stamp, pa_sample_spec *spec); #endif