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
412bedb6
Commit
412bedb6
authored
Dec 26, 2014
by
Max Kellermann
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v0.19.x'
parents
d37811f1
163597ef
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
147 additions
and
52 deletions
+147
-52
NEWS
NEWS
+5
-0
user.xml
doc/user.xml
+6
-4
Compiler.h
src/Compiler.h
+7
-0
Idle.cxx
src/Idle.cxx
+3
-0
SongFilter.cxx
src/SongFilter.cxx
+3
-0
SongLoader.cxx
src/SongLoader.cxx
+3
-0
LazyDatabase.hxx
src/db/plugins/LazyDatabase.hxx
+1
-1
ProxyDatabasePlugin.cxx
src/db/plugins/ProxyDatabasePlugin.cxx
+4
-4
SimpleDatabasePlugin.cxx
src/db/plugins/simple/SimpleDatabasePlugin.cxx
+7
-4
SimpleDatabasePlugin.hxx
src/db/plugins/simple/SimpleDatabasePlugin.hxx
+3
-3
UpnpDatabasePlugin.cxx
src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+4
-2
DecoderPlugin.cxx
src/decoder/DecoderPlugin.cxx
+6
-0
FfmpegDecoderPlugin.cxx
src/decoder/plugins/FfmpegDecoderPlugin.cxx
+1
-0
ChainFilterPlugin.cxx
src/filter/plugins/ChainFilterPlugin.cxx
+5
-4
NormalizeFilterPlugin.cxx
src/filter/plugins/NormalizeFilterPlugin.cxx
+5
-4
ReplayGainFilterPlugin.cxx
src/filter/plugins/ReplayGainFilterPlugin.cxx
+5
-4
RouteFilterPlugin.cxx
src/filter/plugins/RouteFilterPlugin.cxx
+5
-4
VolumeFilterPlugin.cxx
src/filter/plugins/VolumeFilterPlugin.cxx
+5
-4
Charset.cxx
src/fs/Charset.cxx
+6
-0
Traits.cxx
src/fs/Traits.cxx
+6
-0
Traits.hxx
src/fs/Traits.hxx
+16
-0
InputStream.cxx
src/input/InputStream.cxx
+3
-0
MmsInputPlugin.cxx
src/input/plugins/MmsInputPlugin.cxx
+1
-1
Collate.cxx
src/lib/icu/Collate.cxx
+6
-0
ShoutOutputPlugin.cxx
src/output/plugins/ShoutOutputPlugin.cxx
+1
-1
FormatConverter.cxx
src/pcm/FormatConverter.cxx
+1
-1
NfsStorage.cxx
src/storage/plugins/NfsStorage.cxx
+1
-1
TagBuilder.cxx
src/tag/TagBuilder.cxx
+9
-0
ASCII.hxx
src/util/ASCII.hxx
+16
-10
UriUtil.cxx
src/util/UriUtil.cxx
+3
-0
No files found.
NEWS
View file @
412bedb6
...
@@ -24,6 +24,8 @@ ver 0.19.8 (not yet released)
...
@@ -24,6 +24,8 @@ ver 0.19.8 (not yet released)
- mms: reduce delay at the beginning of playback
- mms: reduce delay at the beginning of playback
* decoder
* decoder
- dsdiff, dsf: allow ID3 tags larger than 4 kB
- dsdiff, dsf: allow ID3 tags larger than 4 kB
- ffmpeg: support interleaved floating point
* fix clang 3.6 warnings
ver 0.19.7 (2014/12/17)
ver 0.19.7 (2014/12/17)
* input
* input
...
@@ -188,6 +190,9 @@ ver 0.19 (2014/10/10)
...
@@ -188,6 +190,9 @@ ver 0.19 (2014/10/10)
* install systemd unit for socket activation
* install systemd unit for socket activation
* Android port
* Android port
ver 0.18.22 (not yet released)
* fix clang 3.6 warnings
ver 0.18.21 (2014/12/17)
ver 0.18.21 (2014/12/17)
* playlist
* playlist
- embcue: fix filename suffix detection
- embcue: fix filename suffix detection
...
...
doc/user.xml
View file @
412bedb6
...
@@ -89,7 +89,7 @@ cd mpd-version</programlisting>
...
@@ -89,7 +89,7 @@ cd mpd-version</programlisting>
</para>
</para>
<programlisting>
<programlisting>
apt-get install g++
automake autoconf
\
apt-get install g++ \
libmad0-dev libmpg123-dev libid3tag0-dev \
libmad0-dev libmpg123-dev libid3tag0-dev \
libflac-dev libvorbis-dev libopus-dev \
libflac-dev libvorbis-dev libopus-dev \
libadplug-dev libaudiofile-dev libsndfile1-dev libfaad-dev \
libadplug-dev libaudiofile-dev libsndfile1-dev libfaad-dev \
...
@@ -98,19 +98,21 @@ apt-get install g++ automake autoconf \
...
@@ -98,19 +98,21 @@ apt-get install g++ automake autoconf \
libsidplay2-dev libsidutils-dev libresid-builder-dev \
libsidplay2-dev libsidutils-dev libresid-builder-dev \
libavcodec-dev libavformat-dev \
libavcodec-dev libavformat-dev \
libmp3lame-dev \
libmp3lame-dev \
libsamplerate0-dev \
libsamplerate0-dev
libsoxr-dev
\
libbz2-dev libcdio-paranoia-dev libiso9660-dev libmms-dev \
libbz2-dev libcdio-paranoia-dev libiso9660-dev libmms-dev \
libzzip-dev \
libzzip-dev \
libcurl4-gnutls-dev libyajl-dev \
libcurl4-gnutls-dev libyajl-dev
libexpat-dev
\
libasound2-dev libao-dev libjack-jackd2-dev libopenal-dev \
libasound2-dev libao-dev libjack-jackd2-dev libopenal-dev \
libpulse-dev libroar-dev libshout3-dev \
libpulse-dev libroar-dev libshout3-dev \
libmpdclient-dev \
libmpdclient-dev \
libnfs-dev libsmbclient-dev \
libupnp-dev \
libavahi-client-dev \
libavahi-client-dev \
libsqlite3-dev \
libsqlite3-dev \
libsystemd-daemon-dev libwrap0-dev \
libsystemd-daemon-dev libwrap0-dev \
libcppunit-dev xmlto \
libcppunit-dev xmlto \
libboost-dev \
libboost-dev \
libglib2.0-dev
libglib2.0-dev
libicu-dev
</programlisting>
</programlisting>
<para>
<para>
...
...
src/Compiler.h
View file @
412bedb6
...
@@ -64,6 +64,13 @@
...
@@ -64,6 +64,13 @@
# warning Untested compiler. Use at your own risk!
# warning Untested compiler. Use at your own risk!
#endif
#endif
/**
* Are we building with the specified version of clang or newer?
*/
#define CLANG_CHECK_VERSION(major, minor) \
(defined(__clang__) && \
CLANG_VERSION >= GCC_MAKE_VERSION(major, minor, 0))
#if CLANG_OR_GCC_VERSION(4,0)
#if CLANG_OR_GCC_VERSION(4,0)
/* GCC 4.x */
/* GCC 4.x */
...
...
src/Idle.cxx
View file @
412bedb6
...
@@ -76,7 +76,10 @@ idle_get_names(void)
...
@@ -76,7 +76,10 @@ idle_get_names(void)
unsigned
unsigned
idle_parse_name
(
const
char
*
name
)
idle_parse_name
(
const
char
*
name
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
name
!=
nullptr
);
assert
(
name
!=
nullptr
);
#endif
for
(
unsigned
i
=
0
;
idle_names
[
i
]
!=
nullptr
;
++
i
)
for
(
unsigned
i
=
0
;
idle_names
[
i
]
!=
nullptr
;
++
i
)
if
(
StringEqualsCaseASCII
(
name
,
idle_names
[
i
]))
if
(
StringEqualsCaseASCII
(
name
,
idle_names
[
i
]))
...
...
src/SongFilter.cxx
View file @
412bedb6
...
@@ -77,7 +77,10 @@ SongFilter::Item::Item(unsigned _tag, time_t _time)
...
@@ -77,7 +77,10 @@ SongFilter::Item::Item(unsigned _tag, time_t _time)
bool
bool
SongFilter
::
Item
::
StringMatch
(
const
char
*
s
)
const
SongFilter
::
Item
::
StringMatch
(
const
char
*
s
)
const
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
s
!=
nullptr
);
assert
(
s
!=
nullptr
);
#endif
if
(
fold_case
)
{
if
(
fold_case
)
{
const
std
::
string
folded
=
IcuCaseFold
(
s
);
const
std
::
string
folded
=
IcuCaseFold
(
s
);
...
...
src/SongLoader.cxx
View file @
412bedb6
...
@@ -77,7 +77,10 @@ SongLoader::LoadFile(const char *path_utf8, Error &error) const
...
@@ -77,7 +77,10 @@ SongLoader::LoadFile(const char *path_utf8, Error &error) const
DetachedSong
*
DetachedSong
*
SongLoader
::
LoadSong
(
const
char
*
uri_utf8
,
Error
&
error
)
const
SongLoader
::
LoadSong
(
const
char
*
uri_utf8
,
Error
&
error
)
const
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
uri_utf8
!=
nullptr
);
assert
(
uri_utf8
!=
nullptr
);
#endif
if
(
memcmp
(
uri_utf8
,
"file:///"
,
8
)
==
0
)
if
(
memcmp
(
uri_utf8
,
"file:///"
,
8
)
==
0
)
/* absolute path */
/* absolute path */
...
...
src/db/plugins/LazyDatabase.hxx
View file @
412bedb6
...
@@ -43,7 +43,7 @@ public:
...
@@ -43,7 +43,7 @@ public:
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
Error
&
error
)
const
override
;
Error
&
error
)
const
override
;
v
irtual
void
ReturnSong
(
const
LightSong
*
song
)
const
;
v
oid
ReturnSong
(
const
LightSong
*
song
)
const
override
;
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
VisitDirectory
visit_directory
,
VisitDirectory
visit_directory
,
...
...
src/db/plugins/ProxyDatabasePlugin.cxx
View file @
412bedb6
...
@@ -103,7 +103,7 @@ public:
...
@@ -103,7 +103,7 @@ public:
virtual
void
Close
()
override
;
virtual
void
Close
()
override
;
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
Error
&
error
)
const
override
;
Error
&
error
)
const
override
;
v
irtual
void
ReturnSong
(
const
LightSong
*
song
)
const
;
v
oid
ReturnSong
(
const
LightSong
*
song
)
const
override
;
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
VisitDirectory
visit_directory
,
VisitDirectory
visit_directory
,
...
@@ -731,7 +731,7 @@ ProxyDatabase::Visit(const DatabaseSelection &selection,
...
@@ -731,7 +731,7 @@ ProxyDatabase::Visit(const DatabaseSelection &selection,
{
{
// TODO: eliminate the const_cast
// TODO: eliminate the const_cast
if
(
!
const_cast
<
ProxyDatabase
*>
(
this
)
->
EnsureConnected
(
error
))
if
(
!
const_cast
<
ProxyDatabase
*>
(
this
)
->
EnsureConnected
(
error
))
return
nullptr
;
return
false
;
if
(
!
visit_directory
&&
!
visit_playlist
&&
selection
.
recursive
&&
if
(
!
visit_directory
&&
!
visit_playlist
&&
selection
.
recursive
&&
(
ServerSupportsSearchBase
(
connection
)
(
ServerSupportsSearchBase
(
connection
)
...
@@ -757,7 +757,7 @@ ProxyDatabase::VisitUniqueTags(const DatabaseSelection &selection,
...
@@ -757,7 +757,7 @@ ProxyDatabase::VisitUniqueTags(const DatabaseSelection &selection,
{
{
// TODO: eliminate the const_cast
// TODO: eliminate the const_cast
if
(
!
const_cast
<
ProxyDatabase
*>
(
this
)
->
EnsureConnected
(
error
))
if
(
!
const_cast
<
ProxyDatabase
*>
(
this
)
->
EnsureConnected
(
error
))
return
nullptr
;
return
false
;
enum
mpd_tag_type
tag_type2
=
Convert
(
tag_type
);
enum
mpd_tag_type
tag_type2
=
Convert
(
tag_type
);
if
(
tag_type2
==
MPD_TAG_COUNT
)
{
if
(
tag_type2
==
MPD_TAG_COUNT
)
{
...
@@ -810,7 +810,7 @@ ProxyDatabase::GetStats(const DatabaseSelection &selection,
...
@@ -810,7 +810,7 @@ ProxyDatabase::GetStats(const DatabaseSelection &selection,
// TODO: eliminate the const_cast
// TODO: eliminate the const_cast
if
(
!
const_cast
<
ProxyDatabase
*>
(
this
)
->
EnsureConnected
(
error
))
if
(
!
const_cast
<
ProxyDatabase
*>
(
this
)
->
EnsureConnected
(
error
))
return
nullptr
;
return
false
;
struct
mpd_stats
*
stats2
=
struct
mpd_stats
*
stats2
=
mpd_run_stats
(
connection
);
mpd_run_stats
(
connection
);
...
...
src/db/plugins/simple/SimpleDatabasePlugin.cxx
View file @
412bedb6
...
@@ -435,9 +435,12 @@ SimpleDatabase::Save(Error &error)
...
@@ -435,9 +435,12 @@ SimpleDatabase::Save(Error &error)
bool
bool
SimpleDatabase
::
Mount
(
const
char
*
uri
,
Database
*
db
,
Error
&
error
)
SimpleDatabase
::
Mount
(
const
char
*
uri
,
Database
*
db
,
Error
&
error
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
uri
!=
nullptr
);
assert
(
uri
!=
nullptr
);
assert
(
*
uri
!=
0
);
assert
(
db
!=
nullptr
);
assert
(
db
!=
nullptr
);
#endif
assert
(
*
uri
!=
0
);
ScopeDatabaseLock
protect
;
ScopeDatabaseLock
protect
;
...
@@ -445,13 +448,13 @@ SimpleDatabase::Mount(const char *uri, Database *db, Error &error)
...
@@ -445,13 +448,13 @@ SimpleDatabase::Mount(const char *uri, Database *db, Error &error)
if
(
r
.
uri
==
nullptr
)
{
if
(
r
.
uri
==
nullptr
)
{
error
.
Format
(
db_domain
,
DB_CONFLICT
,
error
.
Format
(
db_domain
,
DB_CONFLICT
,
"Already exists: %s"
,
uri
);
"Already exists: %s"
,
uri
);
return
nullptr
;
return
false
;
}
}
if
(
strchr
(
r
.
uri
,
'/'
)
!=
nullptr
)
{
if
(
strchr
(
r
.
uri
,
'/'
)
!=
nullptr
)
{
error
.
Format
(
db_domain
,
DB_NOT_FOUND
,
error
.
Format
(
db_domain
,
DB_NOT_FOUND
,
"Parent not found: %s"
,
uri
);
"Parent not found: %s"
,
uri
);
return
nullptr
;
return
false
;
}
}
Directory
*
mnt
=
r
.
directory
->
CreateChild
(
r
.
uri
);
Directory
*
mnt
=
r
.
directory
->
CreateChild
(
r
.
uri
);
...
@@ -478,7 +481,7 @@ SimpleDatabase::Mount(const char *local_uri, const char *storage_uri,
...
@@ -478,7 +481,7 @@ SimpleDatabase::Mount(const char *local_uri, const char *storage_uri,
if
(
cache_path
.
IsNull
())
{
if
(
cache_path
.
IsNull
())
{
error
.
Format
(
db_domain
,
DB_NOT_FOUND
,
error
.
Format
(
db_domain
,
DB_NOT_FOUND
,
"No 'cache_directory' configured"
);
"No 'cache_directory' configured"
);
return
nullptr
;
return
false
;
}
}
std
::
string
name
(
storage_uri
);
std
::
string
name
(
storage_uri
);
...
...
src/db/plugins/simple/SimpleDatabasePlugin.hxx
View file @
412bedb6
...
@@ -110,9 +110,9 @@ public:
...
@@ -110,9 +110,9 @@ public:
virtual
bool
Open
(
Error
&
error
)
override
;
virtual
bool
Open
(
Error
&
error
)
override
;
virtual
void
Close
()
override
;
virtual
void
Close
()
override
;
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
Error
&
error
)
const
override
;
Error
&
error
)
const
override
;
v
irtual
void
ReturnSong
(
const
LightSong
*
song
)
const
;
v
oid
ReturnSong
(
const
LightSong
*
song
)
const
override
;
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
VisitDirectory
visit_directory
,
VisitDirectory
visit_directory
,
...
...
src/db/plugins/upnp/UpnpDatabasePlugin.cxx
View file @
412bedb6
...
@@ -85,7 +85,7 @@ public:
...
@@ -85,7 +85,7 @@ public:
virtual
void
Close
()
override
;
virtual
void
Close
()
override
;
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
virtual
const
LightSong
*
GetSong
(
const
char
*
uri_utf8
,
Error
&
error
)
const
override
;
Error
&
error
)
const
override
;
v
irtual
void
ReturnSong
(
const
LightSong
*
song
)
const
;
v
oid
ReturnSong
(
const
LightSong
*
song
)
const
override
;
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
virtual
bool
Visit
(
const
DatabaseSelection
&
selection
,
VisitDirectory
visit_directory
,
VisitDirectory
visit_directory
,
...
@@ -101,7 +101,9 @@ public:
...
@@ -101,7 +101,9 @@ public:
virtual
bool
GetStats
(
const
DatabaseSelection
&
selection
,
virtual
bool
GetStats
(
const
DatabaseSelection
&
selection
,
DatabaseStats
&
stats
,
DatabaseStats
&
stats
,
Error
&
error
)
const
override
;
Error
&
error
)
const
override
;
virtual
time_t
GetUpdateStamp
()
const
{
return
0
;}
time_t
GetUpdateStamp
()
const
override
{
return
0
;
}
protected
:
protected
:
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
...
...
src/decoder/DecoderPlugin.cxx
View file @
412bedb6
...
@@ -26,7 +26,10 @@
...
@@ -26,7 +26,10 @@
bool
bool
DecoderPlugin
::
SupportsSuffix
(
const
char
*
suffix
)
const
DecoderPlugin
::
SupportsSuffix
(
const
char
*
suffix
)
const
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
suffix
!=
nullptr
);
assert
(
suffix
!=
nullptr
);
#endif
return
suffixes
!=
nullptr
&&
string_array_contains
(
suffixes
,
suffix
);
return
suffixes
!=
nullptr
&&
string_array_contains
(
suffixes
,
suffix
);
...
@@ -35,7 +38,10 @@ DecoderPlugin::SupportsSuffix(const char *suffix) const
...
@@ -35,7 +38,10 @@ DecoderPlugin::SupportsSuffix(const char *suffix) const
bool
bool
DecoderPlugin
::
SupportsMimeType
(
const
char
*
mime_type
)
const
DecoderPlugin
::
SupportsMimeType
(
const
char
*
mime_type
)
const
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
mime_type
!=
nullptr
);
assert
(
mime_type
!=
nullptr
);
#endif
return
mime_types
!=
nullptr
&&
return
mime_types
!=
nullptr
&&
string_array_contains
(
mime_types
,
mime_type
);
string_array_contains
(
mime_types
,
mime_type
);
...
...
src/decoder/plugins/FfmpegDecoderPlugin.cxx
View file @
412bedb6
...
@@ -232,6 +232,7 @@ ffmpeg_sample_format(enum AVSampleFormat sample_fmt)
...
@@ -232,6 +232,7 @@ ffmpeg_sample_format(enum AVSampleFormat sample_fmt)
case
AV_SAMPLE_FMT_S32P
:
case
AV_SAMPLE_FMT_S32P
:
return
SampleFormat
::
S32
;
return
SampleFormat
::
S32
;
case
AV_SAMPLE_FMT_FLT
:
case
AV_SAMPLE_FMT_FLTP
:
case
AV_SAMPLE_FMT_FLTP
:
return
SampleFormat
::
FLOAT
;
return
SampleFormat
::
FLOAT
;
...
...
src/filter/plugins/ChainFilterPlugin.cxx
View file @
412bedb6
...
@@ -53,10 +53,11 @@ public:
...
@@ -53,10 +53,11 @@ public:
children
.
emplace_back
(
name
,
filter
);
children
.
emplace_back
(
name
,
filter
);
}
}
virtual
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
/* virtual methods from class Filter */
virtual
void
Close
();
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
virtual
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
void
Close
()
override
;
Error
&
error
);
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
Error
&
error
)
override
;
private
:
private
:
/**
/**
...
...
src/filter/plugins/NormalizeFilterPlugin.cxx
View file @
412bedb6
...
@@ -34,10 +34,11 @@ class NormalizeFilter final : public Filter {
...
@@ -34,10 +34,11 @@ class NormalizeFilter final : public Filter {
PcmBuffer
buffer
;
PcmBuffer
buffer
;
public
:
public
:
virtual
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
/* virtual methods from class Filter */
virtual
void
Close
();
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
virtual
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
void
Close
()
override
;
Error
&
error
)
override
;
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
Error
&
error
)
override
;
};
};
static
Filter
*
static
Filter
*
...
...
src/filter/plugins/ReplayGainFilterPlugin.cxx
View file @
412bedb6
...
@@ -112,10 +112,11 @@ public:
...
@@ -112,10 +112,11 @@ public:
*/
*/
void
Update
();
void
Update
();
virtual
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
/* virtual methods from class Filter */
virtual
void
Close
();
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
virtual
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
void
Close
()
override
;
Error
&
error
)
override
;
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
Error
&
error
)
override
;
};
};
void
void
...
...
src/filter/plugins/RouteFilterPlugin.cxx
View file @
412bedb6
...
@@ -120,10 +120,11 @@ public:
...
@@ -120,10 +120,11 @@ public:
*/
*/
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
bool
Configure
(
const
config_param
&
param
,
Error
&
error
);
virtual
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
/* virtual methods from class Filter */
virtual
void
Close
();
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
virtual
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
void
Close
()
override
;
Error
&
error
)
override
;
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
Error
&
error
)
override
;
};
};
bool
bool
...
...
src/filter/plugins/VolumeFilterPlugin.cxx
View file @
412bedb6
...
@@ -43,10 +43,11 @@ public:
...
@@ -43,10 +43,11 @@ public:
pv
.
SetVolume
(
_volume
);
pv
.
SetVolume
(
_volume
);
}
}
virtual
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
/* virtual methods from class Filter */
virtual
void
Close
();
AudioFormat
Open
(
AudioFormat
&
af
,
Error
&
error
)
override
;
virtual
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
void
Close
()
override
;
Error
&
error
)
override
;
ConstBuffer
<
void
>
FilterPCM
(
ConstBuffer
<
void
>
src
,
Error
&
error
)
override
;
};
};
static
constexpr
Domain
volume_domain
(
"pcm_volume"
);
static
constexpr
Domain
volume_domain
(
"pcm_volume"
);
...
...
src/fs/Charset.cxx
View file @
412bedb6
...
@@ -89,7 +89,10 @@ static inline void FixSeparators(std::string &s)
...
@@ -89,7 +89,10 @@ static inline void FixSeparators(std::string &s)
std
::
string
std
::
string
PathToUTF8
(
const
char
*
path_fs
)
PathToUTF8
(
const
char
*
path_fs
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
path_fs
!=
nullptr
);
assert
(
path_fs
!=
nullptr
);
#endif
#ifdef HAVE_FS_CHARSET
#ifdef HAVE_FS_CHARSET
if
(
fs_converter
==
nullptr
)
{
if
(
fs_converter
==
nullptr
)
{
...
@@ -111,7 +114,10 @@ PathToUTF8(const char *path_fs)
...
@@ -111,7 +114,10 @@ PathToUTF8(const char *path_fs)
std
::
string
std
::
string
PathFromUTF8
(
const
char
*
path_utf8
)
PathFromUTF8
(
const
char
*
path_utf8
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
path_utf8
!=
nullptr
);
assert
(
path_utf8
!=
nullptr
);
#endif
if
(
fs_converter
==
nullptr
)
if
(
fs_converter
==
nullptr
)
return
path_utf8
;
return
path_utf8
;
...
...
src/fs/Traits.cxx
View file @
412bedb6
...
@@ -52,7 +52,10 @@ template<typename Traits>
...
@@ -52,7 +52,10 @@ template<typename Traits>
typename
Traits
::
const_pointer
typename
Traits
::
const_pointer
GetBasePathImpl
(
typename
Traits
::
const_pointer
p
)
GetBasePathImpl
(
typename
Traits
::
const_pointer
p
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
p
!=
nullptr
);
assert
(
p
!=
nullptr
);
#endif
typename
Traits
::
const_pointer
sep
=
Traits
::
FindLastSeparator
(
p
);
typename
Traits
::
const_pointer
sep
=
Traits
::
FindLastSeparator
(
p
);
return
sep
!=
nullptr
return
sep
!=
nullptr
...
@@ -64,7 +67,10 @@ template<typename Traits>
...
@@ -64,7 +67,10 @@ template<typename Traits>
typename
Traits
::
string
typename
Traits
::
string
GetParentPathImpl
(
typename
Traits
::
const_pointer
p
)
GetParentPathImpl
(
typename
Traits
::
const_pointer
p
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
p
!=
nullptr
);
assert
(
p
!=
nullptr
);
#endif
typename
Traits
::
const_pointer
sep
=
Traits
::
FindLastSeparator
(
p
);
typename
Traits
::
const_pointer
sep
=
Traits
::
FindLastSeparator
(
p
);
if
(
sep
==
nullptr
)
if
(
sep
==
nullptr
)
...
...
src/fs/Traits.hxx
View file @
412bedb6
...
@@ -57,7 +57,11 @@ struct PathTraitsFS {
...
@@ -57,7 +57,11 @@ struct PathTraitsFS {
gcc_pure
gcc_nonnull_all
gcc_pure
gcc_nonnull_all
static
const_pointer
FindLastSeparator
(
const_pointer
p
)
{
static
const_pointer
FindLastSeparator
(
const_pointer
p
)
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
p
!=
nullptr
);
assert
(
p
!=
nullptr
);
#endif
#ifdef WIN32
#ifdef WIN32
const_pointer
pos
=
p
+
GetLength
(
p
);
const_pointer
pos
=
p
+
GetLength
(
p
);
while
(
p
!=
pos
&&
!
IsSeparator
(
*
pos
))
while
(
p
!=
pos
&&
!
IsSeparator
(
*
pos
))
...
@@ -77,7 +81,11 @@ struct PathTraitsFS {
...
@@ -77,7 +81,11 @@ struct PathTraitsFS {
gcc_pure
gcc_nonnull_all
gcc_pure
gcc_nonnull_all
static
bool
IsAbsolute
(
const_pointer
p
)
{
static
bool
IsAbsolute
(
const_pointer
p
)
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
p
!=
nullptr
);
assert
(
p
!=
nullptr
);
#endif
#ifdef WIN32
#ifdef WIN32
if
(
IsDrive
(
p
)
&&
IsSeparator
(
p
[
2
]))
if
(
IsDrive
(
p
)
&&
IsSeparator
(
p
[
2
]))
return
true
;
return
true
;
...
@@ -147,7 +155,11 @@ struct PathTraitsUTF8 {
...
@@ -147,7 +155,11 @@ struct PathTraitsUTF8 {
gcc_pure
gcc_nonnull_all
gcc_pure
gcc_nonnull_all
static
const_pointer
FindLastSeparator
(
const_pointer
p
)
{
static
const_pointer
FindLastSeparator
(
const_pointer
p
)
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
p
!=
nullptr
);
assert
(
p
!=
nullptr
);
#endif
return
strrchr
(
p
,
SEPARATOR
);
return
strrchr
(
p
,
SEPARATOR
);
}
}
...
@@ -160,7 +172,11 @@ struct PathTraitsUTF8 {
...
@@ -160,7 +172,11 @@ struct PathTraitsUTF8 {
gcc_pure
gcc_nonnull_all
gcc_pure
gcc_nonnull_all
static
bool
IsAbsolute
(
const_pointer
p
)
{
static
bool
IsAbsolute
(
const_pointer
p
)
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
p
!=
nullptr
);
assert
(
p
!=
nullptr
);
#endif
#ifdef WIN32
#ifdef WIN32
if
(
IsDrive
(
p
)
&&
IsSeparator
(
p
[
2
]))
if
(
IsDrive
(
p
)
&&
IsSeparator
(
p
[
2
]))
return
true
;
return
true
;
...
...
src/input/InputStream.cxx
View file @
412bedb6
...
@@ -122,7 +122,10 @@ InputStream::IsAvailable()
...
@@ -122,7 +122,10 @@ InputStream::IsAvailable()
size_t
size_t
InputStream
::
LockRead
(
void
*
ptr
,
size_t
_size
,
Error
&
error
)
InputStream
::
LockRead
(
void
*
ptr
,
size_t
_size
,
Error
&
error
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
ptr
!=
nullptr
);
assert
(
ptr
!=
nullptr
);
#endif
assert
(
_size
>
0
);
assert
(
_size
>
0
);
const
ScopeLock
protect
(
mutex
);
const
ScopeLock
protect
(
mutex
);
...
...
src/input/plugins/MmsInputPlugin.cxx
View file @
412bedb6
...
@@ -43,7 +43,7 @@ protected:
...
@@ -43,7 +43,7 @@ protected:
virtual
size_t
ThreadRead
(
void
*
ptr
,
size_t
size
,
virtual
size_t
ThreadRead
(
void
*
ptr
,
size_t
size
,
Error
&
error
)
override
;
Error
&
error
)
override
;
v
irtual
void
Close
()
{
v
oid
Close
()
override
{
mmsx_close
(
mms
);
mmsx_close
(
mms
);
}
}
};
};
...
...
src/lib/icu/Collate.cxx
View file @
412bedb6
...
@@ -78,8 +78,11 @@ gcc_pure
...
@@ -78,8 +78,11 @@ gcc_pure
int
int
IcuCollate
(
const
char
*
a
,
const
char
*
b
)
IcuCollate
(
const
char
*
a
,
const
char
*
b
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
a
!=
nullptr
);
assert
(
a
!=
nullptr
);
assert
(
b
!=
nullptr
);
assert
(
b
!=
nullptr
);
#endif
#ifdef HAVE_ICU
#ifdef HAVE_ICU
assert
(
collator
!=
nullptr
);
assert
(
collator
!=
nullptr
);
...
@@ -116,7 +119,10 @@ IcuCaseFold(const char *src)
...
@@ -116,7 +119,10 @@ IcuCaseFold(const char *src)
{
{
#ifdef HAVE_ICU
#ifdef HAVE_ICU
assert
(
collator
!=
nullptr
);
assert
(
collator
!=
nullptr
);
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
src
!=
nullptr
);
assert
(
src
!=
nullptr
);
#endif
const
auto
u
=
UCharFromUTF8
(
src
);
const
auto
u
=
UCharFromUTF8
(
src
);
if
(
u
.
IsNull
())
if
(
u
.
IsNull
())
...
...
src/output/plugins/ShoutOutputPlugin.cxx
View file @
412bedb6
...
@@ -109,7 +109,7 @@ ShoutOutput::Configure(const config_param ¶m, Error &error)
...
@@ -109,7 +109,7 @@ ShoutOutput::Configure(const config_param ¶m, Error &error)
if
(
!
audio_format
.
IsFullyDefined
())
{
if
(
!
audio_format
.
IsFullyDefined
())
{
error
.
Set
(
config_domain
,
error
.
Set
(
config_domain
,
"Need full audio format specification"
);
"Need full audio format specification"
);
return
nullptr
;
return
false
;
}
}
const
char
*
host
=
require_block_string
(
param
,
"host"
);
const
char
*
host
=
require_block_string
(
param
,
"host"
);
...
...
src/pcm/FormatConverter.cxx
View file @
412bedb6
...
@@ -44,7 +44,7 @@ PcmFormatConverter::Open(SampleFormat _src_format, SampleFormat _dest_format,
...
@@ -44,7 +44,7 @@ PcmFormatConverter::Open(SampleFormat _src_format, SampleFormat _dest_format,
"PCM conversion from %s to %s is not implemented"
,
"PCM conversion from %s to %s is not implemented"
,
sample_format_to_string
(
_src_format
),
sample_format_to_string
(
_src_format
),
sample_format_to_string
(
_dest_format
));
sample_format_to_string
(
_dest_format
));
return
nullptr
;
return
false
;
case
SampleFormat
:
:
S16
:
case
SampleFormat
:
:
S16
:
case
SampleFormat
:
:
S24_P32
:
case
SampleFormat
:
:
S24_P32
:
...
...
src/storage/plugins/NfsStorage.cxx
View file @
412bedb6
...
@@ -288,7 +288,7 @@ NfsStorage::GetInfo(const char *uri_utf8, gcc_unused bool follow,
...
@@ -288,7 +288,7 @@ NfsStorage::GetInfo(const char *uri_utf8, gcc_unused bool follow,
return
false
;
return
false
;
if
(
!
WaitConnected
(
error
))
if
(
!
WaitConnected
(
error
))
return
nullptr
;
return
false
;
NfsGetInfoOperation
operation
(
*
connection
,
path
.
c_str
(),
info
);
NfsGetInfoOperation
operation
(
*
connection
,
path
.
c_str
(),
info
);
return
operation
.
Run
(
error
);
return
operation
.
Run
(
error
);
...
...
src/tag/TagBuilder.cxx
View file @
412bedb6
...
@@ -182,7 +182,10 @@ TagBuilder::Complement(const Tag &other)
...
@@ -182,7 +182,10 @@ TagBuilder::Complement(const Tag &other)
inline
void
inline
void
TagBuilder
::
AddItemInternal
(
TagType
type
,
const
char
*
value
,
size_t
length
)
TagBuilder
::
AddItemInternal
(
TagType
type
,
const
char
*
value
,
size_t
length
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
value
!=
nullptr
);
assert
(
value
!=
nullptr
);
#endif
assert
(
length
>
0
);
assert
(
length
>
0
);
auto
f
=
FixTagString
(
value
,
length
);
auto
f
=
FixTagString
(
value
,
length
);
...
@@ -203,7 +206,10 @@ TagBuilder::AddItemInternal(TagType type, const char *value, size_t length)
...
@@ -203,7 +206,10 @@ TagBuilder::AddItemInternal(TagType type, const char *value, size_t length)
void
void
TagBuilder
::
AddItem
(
TagType
type
,
const
char
*
value
,
size_t
length
)
TagBuilder
::
AddItem
(
TagType
type
,
const
char
*
value
,
size_t
length
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
value
!=
nullptr
);
assert
(
value
!=
nullptr
);
#endif
if
(
length
==
0
||
ignore_tag_items
[
type
])
if
(
length
==
0
||
ignore_tag_items
[
type
])
return
;
return
;
...
@@ -214,7 +220,10 @@ TagBuilder::AddItem(TagType type, const char *value, size_t length)
...
@@ -214,7 +220,10 @@ TagBuilder::AddItem(TagType type, const char *value, size_t length)
void
void
TagBuilder
::
AddItem
(
TagType
type
,
const
char
*
value
)
TagBuilder
::
AddItem
(
TagType
type
,
const
char
*
value
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
value
!=
nullptr
);
assert
(
value
!=
nullptr
);
#endif
AddItem
(
type
,
value
,
strlen
(
value
));
AddItem
(
type
,
value
,
strlen
(
value
));
}
}
...
...
src/util/ASCII.hxx
View file @
412bedb6
...
@@ -43,24 +43,30 @@ gcc_pure gcc_nonnull_all
...
@@ -43,24 +43,30 @@ gcc_pure gcc_nonnull_all
static
inline
bool
static
inline
bool
StringEqualsCaseASCII
(
const
char
*
a
,
const
char
*
b
)
StringEqualsCaseASCII
(
const
char
*
a
,
const
char
*
b
)
{
{
assert
(
a
!=
nullptr
);
#if !CLANG_CHECK_VERSION(3,6)
assert
(
b
!=
nullptr
);
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
a
!=
nullptr
);
assert
(
b
!=
nullptr
);
#endif
/* note: strcasecmp() depends on the locale, but for ASCII-only
/* note: strcasecmp() depends on the locale, but for ASCII-only
strings, it's safe to use */
strings, it's safe to use */
return
strcasecmp
(
a
,
b
)
==
0
;
return
strcasecmp
(
a
,
b
)
==
0
;
}
}
gcc_pure
gcc_nonnull_all
gcc_pure
gcc_nonnull_all
static
inline
bool
static
inline
bool
StringEqualsCaseASCII
(
const
char
*
a
,
const
char
*
b
,
size_t
n
)
StringEqualsCaseASCII
(
const
char
*
a
,
const
char
*
b
,
size_t
n
)
{
{
assert
(
a
!=
nullptr
);
#if !CLANG_CHECK_VERSION(3,6)
assert
(
b
!=
nullptr
);
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
a
!=
nullptr
);
assert
(
b
!=
nullptr
);
#endif
/* note: strcasecmp() depends on the locale, but for ASCII-only
/* note: strcasecmp() depends on the locale, but for ASCII-only
strings, it's safe to use */
strings, it's safe to use */
return
strncasecmp
(
a
,
b
,
n
)
==
0
;
return
strncasecmp
(
a
,
b
,
n
)
==
0
;
}
}
#endif
#endif
src/util/UriUtil.cxx
View file @
412bedb6
...
@@ -140,8 +140,11 @@ uri_remove_auth(const char *uri)
...
@@ -140,8 +140,11 @@ uri_remove_auth(const char *uri)
bool
bool
uri_is_child
(
const
char
*
parent
,
const
char
*
child
)
uri_is_child
(
const
char
*
parent
,
const
char
*
child
)
{
{
#if !CLANG_CHECK_VERSION(3,6)
/* disabled on clang due to -Wtautological-pointer-compare */
assert
(
parent
!=
nullptr
);
assert
(
parent
!=
nullptr
);
assert
(
child
!=
nullptr
);
assert
(
child
!=
nullptr
);
#endif
const
size_t
parent_length
=
strlen
(
parent
);
const
size_t
parent_length
=
strlen
(
parent
);
return
memcmp
(
parent
,
child
,
parent_length
)
==
0
&&
return
memcmp
(
parent
,
child
,
parent_length
)
==
0
&&
...
...
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