treewide: use boost::lround when std::round is unavailable
This is the case with uClibc-ng currently. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
b5d1a09010
commit
3ec9fcfc44
@ -28,13 +28,13 @@
|
||||
#include "db/Stats.hxx"
|
||||
#include "Log.hxx"
|
||||
#include "time/ChronoUtil.hxx"
|
||||
#include "util/Math.hxx"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include "system/Clock.hxx"
|
||||
#endif
|
||||
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
|
||||
#ifndef _WIN32
|
||||
/**
|
||||
@ -126,7 +126,7 @@ stats_print(Response &r, const Partition &partition)
|
||||
r.Format("uptime: %u\n"
|
||||
"playtime: %lu\n",
|
||||
(unsigned)std::chrono::duration_cast<std::chrono::seconds>(uptime).count(),
|
||||
std::lround(partition.pc.GetTotalPlayTime().count()));
|
||||
lround(partition.pc.GetTotalPlayTime().count()));
|
||||
|
||||
#ifdef ENABLE_DATABASE
|
||||
const Database *db = partition.instance.GetDatabase();
|
||||
|
@ -32,13 +32,12 @@
|
||||
#include "util/StringBuffer.hxx"
|
||||
#include "util/ScopeExit.hxx"
|
||||
#include "util/Exception.hxx"
|
||||
#include "util/Math.hxx"
|
||||
|
||||
#ifdef ENABLE_DATABASE
|
||||
#include "db/update/Service.hxx"
|
||||
#endif
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#define COMMAND_STATUS_STATE "state"
|
||||
#define COMMAND_STATUS_REPEAT "repeat"
|
||||
#define COMMAND_STATUS_SINGLE "single"
|
||||
@ -155,7 +154,7 @@ handle_status(Client &client, gcc_unused Request args, Response &r)
|
||||
|
||||
if (pc.GetCrossFade() > FloatDuration::zero())
|
||||
r.Format(COMMAND_STATUS_CROSSFADE ": %lu\n",
|
||||
std::lround(pc.GetCrossFade().count()));
|
||||
lround(pc.GetCrossFade().count()));
|
||||
|
||||
if (pc.GetMixRampDelay() > FloatDuration::zero())
|
||||
r.Format(COMMAND_STATUS_MIXRAMPDELAY ": %f\n",
|
||||
|
@ -26,12 +26,12 @@
|
||||
#include "util/ScopeExit.hxx"
|
||||
#include "util/ConstBuffer.hxx"
|
||||
#include "util/Domain.hxx"
|
||||
#include "util/Math.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
#include <neaacdec.h>
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
@ -20,13 +20,13 @@
|
||||
#include "mixer/MixerInternal.hxx"
|
||||
#include "output/OutputAPI.hxx"
|
||||
#include "output/plugins/WinmmOutputPlugin.hxx"
|
||||
#include "util/Math.hxx"
|
||||
|
||||
#include <mmsystem.h>
|
||||
|
||||
#include <cassert>
|
||||
#include <stdexcept>
|
||||
|
||||
#include <math.h>
|
||||
#include <windows.h>
|
||||
|
||||
class WinmmMixer final : public Mixer {
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "../OutputAPI.hxx"
|
||||
#include "mixer/MixerList.hxx"
|
||||
#include "util/Domain.hxx"
|
||||
#include "util/Math.hxx"
|
||||
#include "system/Error.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
@ -37,8 +38,6 @@
|
||||
#include <StringList.h>
|
||||
#include <SoundPlayer.h>
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#define UTF8_PLAY "\xE2\x96\xB6"
|
||||
|
@ -22,11 +22,11 @@
|
||||
#include "Clamp.hxx"
|
||||
#include "Traits.hxx"
|
||||
#include "util/Clamp.hxx"
|
||||
#include "util/Math.hxx"
|
||||
|
||||
#include "Dither.cxx" // including the .cxx file to get inlined templates
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
|
||||
template<SampleFormat F, class Traits=SampleTraits<F>>
|
||||
static typename Traits::value_type
|
||||
@ -224,7 +224,7 @@ pcm_mix(PcmDither &dither, void *buffer1, const void *buffer2, size_t size,
|
||||
s = sin(M_PI_2 * portion1);
|
||||
s *= s;
|
||||
|
||||
int vol1 = std::lround(s * PCM_VOLUME_1S);
|
||||
int vol1 = lround(s * PCM_VOLUME_1S);
|
||||
vol1 = Clamp<int>(vol1, 0, PCM_VOLUME_1S);
|
||||
|
||||
return pcm_add_vol(dither, buffer1, buffer2, size,
|
||||
|
@ -23,10 +23,10 @@
|
||||
#include "pcm/AudioFormat.hxx"
|
||||
#include "util/NumberParser.hxx"
|
||||
#include "util/Domain.hxx"
|
||||
#include "util/Math.hxx"
|
||||
#include "Log.hxx"
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
|
||||
static constexpr Domain cross_fade_domain("cross_fade");
|
||||
|
||||
@ -111,7 +111,7 @@ CrossFadeSettings::Calculate(SignedSongTime total_time,
|
||||
|
||||
if (mixramp_delay <= FloatDuration::zero() ||
|
||||
!mixramp_start || !mixramp_prev_end) {
|
||||
chunks = std::lround(duration / chunk_duration);
|
||||
chunks = lround(duration / chunk_duration);
|
||||
} else {
|
||||
/* Calculate mixramp overlap. */
|
||||
const auto mixramp_overlap_current =
|
||||
|
41
src/util/Math.hxx
Normal file
41
src/util/Math.hxx
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Max Kellermann <max.kellermann@gmail.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef MATH_HXX
|
||||
#define MATH_HXX
|
||||
|
||||
#ifdef __UCLIBC__
|
||||
#include <boost/math/special_functions/round.hpp>
|
||||
using boost::math::lround;
|
||||
#else
|
||||
#include <cmath>
|
||||
using std::lround;
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user