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
39114f91
Commit
39114f91
authored
8 years ago
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AudioFormat: replace struct audio_format_string with class StringBuffer, return it
parent
4f01387e
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
36 additions
and
53 deletions
+36
-53
AudioFormat.cxx
src/AudioFormat.cxx
+6
-7
AudioFormat.hxx
src/AudioFormat.hxx
+7
-12
PlayerCommands.cxx
src/command/PlayerCommands.cxx
+3
-6
Bridge.cxx
src/decoder/Bridge.cxx
+3
-5
ChainFilterPlugin.cxx
src/filter/plugins/ChainFilterPlugin.cxx
+2
-2
OutputThread.cxx
src/output/OutputThread.cxx
+6
-9
FakeDecoderAPI.cxx
test/FakeDecoderAPI.cxx
+2
-3
TestAudioFormat.cxx
test/TestAudioFormat.cxx
+3
-5
run_filter.cxx
test/run_filter.cxx
+2
-2
run_output.cxx
test/run_output.cxx
+2
-2
No files found.
src/AudioFormat.cxx
View file @
39114f91
...
...
@@ -18,6 +18,7 @@
*/
#include "AudioFormat.hxx"
#include "util/StringBuffer.hxx"
#include <assert.h>
#include <stdio.h>
...
...
@@ -40,15 +41,13 @@ AudioFormat::ApplyMask(AudioFormat mask)
assert
(
IsValid
());
}
const
char
*
audio_format_to_string
(
const
AudioFormat
af
,
struct
audio_format_string
*
s
)
StringBuffer
<
24
>
ToString
(
const
AudioFormat
af
)
{
assert
(
s
!=
nullptr
);
snprintf
(
s
->
buffer
,
sizeof
(
s
->
buffer
),
"%u:%s:%u"
,
StringBuffer
<
24
>
buffer
;
snprintf
(
buffer
.
data
(),
buffer
.
capacity
(),
"%u:%s:%u"
,
af
.
sample_rate
,
sample_format_to_string
(
af
.
format
),
af
.
channels
);
return
s
->
buffer
;
return
buffer
;
}
This diff is collapsed.
Click to expand it.
src/AudioFormat.hxx
View file @
39114f91
...
...
@@ -23,8 +23,11 @@
#include "pcm/SampleFormat.hxx"
#include "Compiler.h"
#include <stdint.h>
#include <assert.h>
#include <stdint.h>
#include <stddef.h>
template
<
size_t
CAPACITY
>
class
StringBuffer
;
static
constexpr
unsigned
MAX_CHANNELS
=
8
;
...
...
@@ -148,13 +151,6 @@ struct AudioFormat {
};
/**
* Buffer for audio_format_string().
*/
struct
audio_format_string
{
char
buffer
[
24
];
};
/**
* Checks whether the sample rate is valid.
*
* @param sample_rate the sample rate in Hz
...
...
@@ -226,9 +222,8 @@ AudioFormat::GetTimeToSize() const
* @param s a buffer to print into
* @return the string, or nullptr if the #AudioFormat object is invalid
*/
gcc_pure
gcc_malloc
const
char
*
audio_format_to_string
(
AudioFormat
af
,
struct
audio_format_string
*
s
);
gcc_const
StringBuffer
<
24
>
ToString
(
AudioFormat
af
);
#endif
This diff is collapsed.
Click to expand it.
src/command/PlayerCommands.cxx
View file @
39114f91
...
...
@@ -30,6 +30,7 @@
#include "Instance.hxx"
#include "Idle.hxx"
#include "AudioFormat.hxx"
#include "util/StringBuffer.hxx"
#include "util/ScopeExit.hxx"
#include "util/Exception.hxx"
...
...
@@ -171,13 +172,9 @@ handle_status(Client &client, gcc_unused Request args, Response &r)
r
.
Format
(
"duration: %1.3f
\n
"
,
player_status
.
total_time
.
ToDoubleS
());
if
(
player_status
.
audio_format
.
IsDefined
())
{
struct
audio_format_string
af_string
;
if
(
player_status
.
audio_format
.
IsDefined
())
r
.
Format
(
COMMAND_STATUS_AUDIO
": %s
\n
"
,
audio_format_to_string
(
player_status
.
audio_format
,
&
af_string
));
}
ToString
(
player_status
.
audio_format
).
c_str
());
}
#ifdef ENABLE_DATABASE
...
...
This diff is collapsed.
Click to expand it.
src/decoder/Bridge.cxx
View file @
39114f91
...
...
@@ -32,6 +32,7 @@
#include "Log.hxx"
#include "input/InputStream.hxx"
#include "util/ConstBuffer.hxx"
#include "util/StringBuffer.hxx"
#include <assert.h>
#include <string.h>
...
...
@@ -246,15 +247,13 @@ void
DecoderBridge
::
Ready
(
const
AudioFormat
audio_format
,
bool
seekable
,
SignedSongTime
duration
)
{
struct
audio_format_string
af_string
;
assert
(
convert
==
nullptr
);
assert
(
stream_tag
==
nullptr
);
assert
(
decoder_tag
==
nullptr
);
assert
(
!
seeking
);
FormatDebug
(
decoder_domain
,
"audio_format=%s, seekable=%s"
,
audio_format_to_string
(
audio_format
,
&
af_string
),
ToString
(
audio_format
).
c_str
(
),
seekable
?
"true"
:
"false"
);
{
...
...
@@ -264,8 +263,7 @@ DecoderBridge::Ready(const AudioFormat audio_format,
if
(
dc
.
in_audio_format
!=
dc
.
out_audio_format
)
{
FormatDebug
(
decoder_domain
,
"converting to %s"
,
audio_format_to_string
(
dc
.
out_audio_format
,
&
af_string
));
ToString
(
dc
.
out_audio_format
).
c_str
());
convert
=
new
PcmConvert
();
...
...
This diff is collapsed.
Click to expand it.
src/filter/plugins/ChainFilterPlugin.cxx
View file @
39114f91
...
...
@@ -24,6 +24,7 @@
#include "filter/FilterRegistry.hxx"
#include "AudioFormat.hxx"
#include "util/ConstBuffer.hxx"
#include "util/StringBuffer.hxx"
#include "util/RuntimeError.hxx"
#include <memory>
...
...
@@ -108,10 +109,9 @@ PreparedChainFilter::Child::Open(const AudioFormat &prev_audio_format)
if
(
conv_audio_format
!=
prev_audio_format
)
{
delete
new_filter
;
struct
audio_format_string
s
;
throw
FormatRuntimeError
(
"Audio format not supported by filter '%s': %s"
,
name
,
audio_format_to_string
(
prev_audio_format
,
&
s
));
ToString
(
prev_audio_format
).
c_str
(
));
}
return
new_filter
;
...
...
This diff is collapsed.
Click to expand it.
src/output/OutputThread.cxx
View file @
39114f91
...
...
@@ -35,6 +35,7 @@
#include "thread/Slack.hxx"
#include "thread/Name.hxx"
#include "util/ConstBuffer.hxx"
#include "util/StringBuffer.hxx"
#include "util/ScopeExit.hxx"
#include "util/RuntimeError.hxx"
#include "Log.hxx"
...
...
@@ -154,14 +155,11 @@ AudioOutput::Open()
}
}
if
(
f
!=
source
.
GetInputAudioFormat
()
||
f
!=
out_audio_format
)
{
struct
audio_format_string
afs1
,
afs2
,
afs3
;
if
(
f
!=
source
.
GetInputAudioFormat
()
||
f
!=
out_audio_format
)
FormatDebug
(
output_domain
,
"converting in=%s -> f=%s -> out=%s"
,
audio_format_to_string
(
source
.
GetInputAudioFormat
(),
&
afs1
),
audio_format_to_string
(
f
,
&
afs2
),
audio_format_to_string
(
out_audio_format
,
&
afs3
));
}
ToString
(
source
.
GetInputAudioFormat
()).
c_str
(),
ToString
(
f
).
c_str
(),
ToString
(
out_audio_format
).
c_str
());
}
void
...
...
@@ -176,11 +174,10 @@ AudioOutput::OpenOutputAndConvert(AudioFormat desired_audio_format)
name
,
plugin
.
name
));
}
struct
audio_format_string
af_string
;
FormatDebug
(
output_domain
,
"opened plugin=%s name=
\"
%s
\"
audio_format=%s"
,
plugin
.
name
,
name
,
audio_format_to_string
(
out_audio_format
,
&
af_string
));
ToString
(
out_audio_format
).
c_str
(
));
try
{
convert_filter_set
(
convert_filter
.
Get
(),
out_audio_format
);
...
...
This diff is collapsed.
Click to expand it.
test/FakeDecoderAPI.cxx
View file @
39114f91
...
...
@@ -21,6 +21,7 @@
#include "FakeDecoderAPI.hxx"
#include "decoder/DecoderAPI.hxx"
#include "input/InputStream.hxx"
#include "util/StringBuffer.hxx"
#include "Compiler.h"
#include <stdexcept>
...
...
@@ -33,13 +34,11 @@ FakeDecoder::Ready(const AudioFormat audio_format,
gcc_unused
bool
seekable
,
SignedSongTime
duration
)
{
struct
audio_format_string
af_string
;
assert
(
!
initialized
);
assert
(
audio_format
.
IsValid
());
fprintf
(
stderr
,
"audio_format=%s duration=%f
\n
"
,
audio_format_to_string
(
audio_format
,
&
af_string
),
ToString
(
audio_format
).
c_str
(
),
duration
.
ToDoubleS
());
initialized
=
true
;
...
...
This diff is collapsed.
Click to expand it.
test/TestAudioFormat.cxx
View file @
39114f91
...
...
@@ -21,6 +21,7 @@
#include "TestAudioFormat.hxx"
#include "AudioFormat.hxx"
#include "AudioParser.hxx"
#include "util/StringBuffer.hxx"
#include <cppunit/TestAssert.h>
...
...
@@ -51,8 +52,7 @@ struct assertion_traits<AudioFormat>
static
std
::
string
toString
(
AudioFormat
x
)
{
struct
audio_format_string
s
;
return
audio_format_to_string
(
x
,
&
s
);
return
ToString
(
x
).
c_str
();
}
};
}
...
...
@@ -80,10 +80,8 @@ static constexpr AudioFormatStringTest af_mask_tests[] = {
void
AudioFormatTest
::
TestToString
()
{
struct
audio_format_string
s
;
for
(
const
auto
&
i
:
af_string_tests
)
CPPUNIT_ASSERT_EQUAL
(
i
.
s
,
audio_format_to_string
(
i
.
af
,
&
s
));
CPPUNIT_ASSERT_EQUAL
(
i
.
s
,
ToString
(
i
.
af
).
c_str
(
));
}
void
...
...
This diff is collapsed.
Click to expand it.
test/run_filter.cxx
View file @
39114f91
...
...
@@ -28,6 +28,7 @@
#include "pcm/Volume.hxx"
#include "mixer/MixerControl.hxx"
#include "util/ConstBuffer.hxx"
#include "util/StringBuffer.hxx"
#include "system/FatalError.hxx"
#include "Log.hxx"
...
...
@@ -62,7 +63,6 @@ load_filter(const char *name)
int
main
(
int
argc
,
char
**
argv
)
try
{
struct
audio_format_string
af_string
;
char
buffer
[
4096
];
if
(
argc
<
3
||
argc
>
4
)
{
...
...
@@ -97,7 +97,7 @@ try {
const
AudioFormat
out_audio_format
=
filter
->
GetOutAudioFormat
();
fprintf
(
stderr
,
"audio_format=%s
\n
"
,
audio_format_to_string
(
out_audio_format
,
&
af_string
));
ToString
(
out_audio_format
).
c_str
(
));
/* play */
...
...
This diff is collapsed.
Click to expand it.
test/run_output.cxx
View file @
39114f91
...
...
@@ -33,6 +33,7 @@
#include "ReplayGainConfig.hxx"
#include "pcm/PcmConvert.hxx"
#include "filter/FilterRegistry.hxx"
#include "util/StringBuffer.hxx"
#include "util/RuntimeError.hxx"
#include "util/ScopeExit.hxx"
#include "Log.hxx"
...
...
@@ -86,9 +87,8 @@ run_output(AudioOutput *ao, AudioFormat audio_format)
ao_plugin_open
(
ao
,
audio_format
);
AtScopeExit
(
ao
)
{
ao_plugin_close
(
ao
);
};
struct
audio_format_string
af_string
;
fprintf
(
stderr
,
"audio_format=%s
\n
"
,
audio_format_to_string
(
audio_format
,
&
af_string
));
ToString
(
audio_format
).
c_str
(
));
size_t
frame_size
=
audio_format
.
GetFrameSize
();
...
...
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