Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
fd715140
Commit
fd715140
authored
5 years ago
by
Max Kellermann
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'neheb/h'
parents
256cfc54
5e4b7e2f
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
72 additions
and
34 deletions
+72
-34
ReplayGainGlobal.cxx
src/ReplayGainGlobal.cxx
+1
-1
ReplayGainInfo.cxx
src/ReplayGainInfo.cxx
+1
-2
Stats.cxx
src/Stats.cxx
+2
-2
PlayerCommands.cxx
src/command/PlayerCommands.cxx
+2
-3
Bridge.cxx
src/decoder/Bridge.cxx
+2
-2
FaadDecoderPlugin.cxx
src/decoder/plugins/FaadDecoderPlugin.cxx
+1
-1
MpcdecDecoderPlugin.cxx
src/decoder/plugins/MpcdecDecoderPlugin.cxx
+1
-2
WavpackDecoderPlugin.cxx
src/decoder/plugins/WavpackDecoderPlugin.cxx
+2
-2
AlsaMixerPlugin.cxx
src/mixer/plugins/AlsaMixerPlugin.cxx
+1
-2
SoftwareMixerPlugin.cxx
src/mixer/plugins/SoftwareMixerPlugin.cxx
+3
-2
WinmmMixerPlugin.cxx
src/mixer/plugins/WinmmMixerPlugin.cxx
+1
-1
volume_mapping.c
src/mixer/plugins/volume_mapping.c
+3
-8
HaikuOutputPlugin.cxx
src/output/plugins/HaikuOutputPlugin.cxx
+1
-2
Mix.cxx
src/pcm/Mix.cxx
+2
-2
CrossFade.cxx
src/player/CrossFade.cxx
+2
-2
Math.hxx
src/util/Math.hxx
+47
-0
No files found.
src/ReplayGainGlobal.cxx
View file @
fd715140
...
...
@@ -20,12 +20,12 @@
#include "ReplayGainGlobal.hxx"
#include "ReplayGainConfig.hxx"
#include "config/Data.hxx"
#include "util/Math.hxx"
#include <cassert>
#include <stdexcept>
#include <stdlib.h>
#include <math.h>
static
float
ParsePreamp
(
const
char
*
s
)
...
...
This diff is collapsed.
Click to expand it.
src/ReplayGainInfo.cxx
View file @
fd715140
...
...
@@ -19,8 +19,7 @@
#include "ReplayGainInfo.hxx"
#include "ReplayGainConfig.hxx"
#include <math.h>
#include "util/Math.hxx"
float
ReplayGainTuple
::
CalculateScale
(
const
ReplayGainConfig
&
config
)
const
noexcept
...
...
This diff is collapsed.
Click to expand it.
src/Stats.cxx
View file @
fd715140
...
...
@@ -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
();
...
...
This diff is collapsed.
Click to expand it.
src/command/PlayerCommands.cxx
View file @
fd715140
...
...
@@ -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, [[maybe_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
"
,
...
...
This diff is collapsed.
Click to expand it.
src/decoder/Bridge.cxx
View file @
fd715140
...
...
@@ -37,9 +37,9 @@
#include "util/StringBuffer.hxx"
#include <cassert>
#include <cmath>
#include <string.h>
#include <math.h>
DecoderBridge
::
DecoderBridge
(
DecoderControl
&
_dc
,
bool
_initial_seek_pending
,
std
::
unique_ptr
<
Tag
>
_tag
)
noexcept
...
...
@@ -611,7 +611,7 @@ DecoderBridge::SubmitReplayGain(const ReplayGainInfo *new_replay_gain_info) noex
const
auto
&
tuple
=
new_replay_gain_info
->
Get
(
rgm
);
const
auto
scale
=
tuple
.
CalculateScale
(
dc
.
replay_gain_config
);
dc
.
replay_gain_db
=
20.0
*
log10f
(
scale
);
dc
.
replay_gain_db
=
20.0
*
std
::
log10
(
scale
);
}
replay_gain_info
=
*
new_replay_gain_info
;
...
...
This diff is collapsed.
Click to expand it.
src/decoder/plugins/FaadDecoderPlugin.cxx
View file @
fd715140
...
...
@@ -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>
...
...
This diff is collapsed.
Click to expand it.
src/decoder/plugins/MpcdecDecoderPlugin.cxx
View file @
fd715140
...
...
@@ -25,6 +25,7 @@
#include "tag/Handler.hxx"
#include "util/Domain.hxx"
#include "util/Clamp.hxx"
#include "util/Math.hxx"
#include "util/ScopeExit.hxx"
#include "Log.hxx"
...
...
@@ -32,8 +33,6 @@
#include <iterator>
#include <math.h>
struct
mpc_decoder_data
{
InputStream
&
is
;
DecoderClient
*
client
;
...
...
This diff is collapsed.
Click to expand it.
src/decoder/plugins/WavpackDecoderPlugin.cxx
View file @
fd715140
...
...
@@ -25,6 +25,7 @@
#include "tag/Handler.hxx"
#include "fs/Path.hxx"
#include "util/Alloc.hxx"
#include "util/Math.hxx"
#include "util/ScopeExit.hxx"
#include "util/RuntimeError.hxx"
...
...
@@ -263,8 +264,7 @@ wavpack_decode(DecoderClient &client, WavpackContext *wpc, bool can_seek)
if
(
samples_got
==
0
)
break
;
int
bitrate
=
(
int
)(
WavpackGetInstantBitrate
(
wpc
)
/
1000
+
0.5
);
int
bitrate
=
lround
(
WavpackGetInstantBitrate
(
wpc
)
/
1000
);
format_samples
(
chunk
,
samples_got
*
audio_format
.
channels
);
cmd
=
client
.
SubmitData
(
nullptr
,
chunk
,
...
...
This diff is collapsed.
Click to expand it.
src/mixer/plugins/AlsaMixerPlugin.cxx
View file @
fd715140
...
...
@@ -26,6 +26,7 @@
#include "event/Call.hxx"
#include "util/ASCII.hxx"
#include "util/Domain.hxx"
#include "util/Math.hxx"
#include "util/RuntimeError.hxx"
#include "Log.hxx"
...
...
@@ -35,8 +36,6 @@ extern "C" {
#include <alsa/asoundlib.h>
#include <math.h>
#define VOLUME_MIXER_ALSA_DEFAULT "default"
#define VOLUME_MIXER_ALSA_CONTROL_DEFAULT "PCM"
static
constexpr
unsigned
VOLUME_MIXER_ALSA_INDEX_DEFAULT
=
0
;
...
...
This diff is collapsed.
Click to expand it.
src/mixer/plugins/SoftwareMixerPlugin.cxx
View file @
fd715140
...
...
@@ -23,8 +23,9 @@
#include "pcm/Volume.hxx"
#include <cassert>
#include <cmath>
#include <
math
.h>
#include <
assert
.h>
class
SoftwareMixer
final
:
public
Mixer
{
Filter
*
filter
=
nullptr
;
...
...
@@ -74,7 +75,7 @@ PercentVolumeToSoftwareVolume(unsigned volume) noexcept
if
(
volume
>=
100
)
return
PCM_VOLUME_1
;
else
if
(
volume
>
0
)
return
pcm_float_to_volume
((
exp
(
volume
/
25.0
)
-
1
)
/
return
pcm_float_to_volume
((
std
::
exp
(
volume
/
25.0
)
-
1
)
/
(
54.5981500331
F
-
1
));
else
return
0
;
...
...
This diff is collapsed.
Click to expand it.
src/mixer/plugins/WinmmMixerPlugin.cxx
View file @
fd715140
...
...
@@ -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
{
...
...
This diff is collapsed.
Click to expand it.
src/mixer/plugins/volume_mapping.c
View file @
fd715140
...
...
@@ -34,11 +34,6 @@
#include <stdbool.h>
#include "volume_mapping.h"
#ifdef __UCLIBC__
/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
#define exp10(x) (exp((x) * log(10)))
#endif
/* __UCLIBC__ */
#define MAX_LINEAR_DB_SCALE 24
static
inline
bool
use_linear_dB_scale
(
long
dBmin
,
long
dBmax
)
...
...
@@ -111,9 +106,9 @@ static double get_normalized_volume(snd_mixer_elem_t *elem,
if
(
use_linear_dB_scale
(
min
,
max
))
return
(
value
-
min
)
/
(
double
)(
max
-
min
);
normalized
=
exp10
(
(
value
-
max
)
/
6000
.
0
);
normalized
=
pow
(
10
,
(
value
-
max
)
/
6000
.
0
);
if
(
min
!=
SND_CTL_TLV_DB_GAIN_MUTE
)
{
min_norm
=
exp10
(
(
min
-
max
)
/
6000
.
0
);
min_norm
=
pow
(
10
,
(
min
-
max
)
/
6000
.
0
);
normalized
=
(
normalized
-
min_norm
)
/
(
1
-
min_norm
);
}
...
...
@@ -159,7 +154,7 @@ static int set_normalized_volume(snd_mixer_elem_t *elem,
}
if
(
min
!=
SND_CTL_TLV_DB_GAIN_MUTE
)
{
min_norm
=
exp10
(
(
min
-
max
)
/
6000
.
0
);
min_norm
=
pow
(
10
,
(
min
-
max
)
/
6000
.
0
);
volume
=
volume
*
(
1
-
min_norm
)
+
min_norm
;
}
value
=
lrint_dir
(
6000
.
0
*
log10
(
volume
),
dir
)
+
max
;
...
...
This diff is collapsed.
Click to expand it.
src/output/plugins/HaikuOutputPlugin.cxx
View file @
fd715140
...
...
@@ -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"
...
...
This diff is collapsed.
Click to expand it.
src/pcm/Mix.cxx
View file @
fd715140
...
...
@@ -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
,
...
...
This diff is collapsed.
Click to expand it.
src/player/CrossFade.cxx
View file @
fd715140
...
...
@@ -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
=
...
...
This diff is collapsed.
Click to expand it.
src/util/Math.hxx
0 → 100644
View file @
fd715140
/*
* 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/pow.hpp>
#include <boost/math/special_functions/round.hpp>
using
boost
::
math
::
iround
;
using
boost
::
math
::
pow
;
using
boost
::
math
::
lround
;
#define lrint iround
#else
#include <cmath>
using
std
::
pow
;
using
std
::
lrint
;
using
std
::
lround
;
#endif
#endif
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment