Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
97a1a04116 | ||
![]() |
493cd866f1 | ||
![]() |
063d369672 | ||
![]() |
a0fae8dacc | ||
![]() |
bc840b69d5 | ||
![]() |
85301853d6 | ||
![]() |
7cd53fb452 | ||
![]() |
538ddf7af2 | ||
![]() |
d5afa181f7 | ||
![]() |
8ed4124184 | ||
![]() |
160242a74f |
@@ -2194,4 +2194,5 @@ EXTRA_DIST = $(doc_DATA) autogen.sh \
|
|||||||
test/test_archive_zzip.sh \
|
test/test_archive_zzip.sh \
|
||||||
$(wildcard scripts/*.sh) \
|
$(wildcard scripts/*.sh) \
|
||||||
$(man_MANS) $(DOCBOOK_FILES) doc/mpdconf.example doc/doxygen.conf \
|
$(man_MANS) $(DOCBOOK_FILES) doc/mpdconf.example doc/doxygen.conf \
|
||||||
|
systemd/mpd.socket \
|
||||||
src/win32/mpd_win32_rc.rc.in src/win32/mpd.ico
|
src/win32/mpd_win32_rc.rc.in src/win32/mpd.ico
|
||||||
|
9
NEWS
9
NEWS
@@ -1,3 +1,12 @@
|
|||||||
|
ver 0.19.1 (2014/10/19)
|
||||||
|
* input
|
||||||
|
- mms: fix deadlock bug
|
||||||
|
* playlist
|
||||||
|
- extm3u: fix Extended M3U detection
|
||||||
|
- m3u, extm3u, cue: fix truncated lines
|
||||||
|
* fix build failure on Mac OS X
|
||||||
|
* add missing file systemd/mpd.socket to tarball
|
||||||
|
|
||||||
ver 0.19 (2014/10/10)
|
ver 0.19 (2014/10/10)
|
||||||
* protocol
|
* protocol
|
||||||
- new commands "addtagid", "cleartagid", "listfiles", "listmounts",
|
- new commands "addtagid", "cleartagid", "listfiles", "listmounts",
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="org.musicpd"
|
package="org.musicpd"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
android:versionCode="6"
|
android:versionCode="7"
|
||||||
android:versionName="0.19">
|
android:versionName="0.19.1">
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17"/>
|
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17"/>
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
AC_PREREQ(2.60)
|
AC_PREREQ(2.60)
|
||||||
|
|
||||||
AC_INIT(mpd, 0.19, musicpd-dev-team@lists.sourceforge.net)
|
AC_INIT(mpd, 0.19.1, musicpd-dev-team@lists.sourceforge.net)
|
||||||
|
|
||||||
VERSION_MAJOR=0
|
VERSION_MAJOR=0
|
||||||
VERSION_MINOR=19
|
VERSION_MINOR=19
|
||||||
|
@@ -33,6 +33,8 @@ TextInputStream::ReadLine()
|
|||||||
if (line != nullptr)
|
if (line != nullptr)
|
||||||
return line;
|
return line;
|
||||||
|
|
||||||
|
buffer.Shift();
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
auto dest = buffer.Write();
|
auto dest = buffer.Write();
|
||||||
if (dest.size < 2) {
|
if (dest.size < 2) {
|
||||||
|
@@ -88,7 +88,7 @@ ThreadInputStream::ThreadFunc()
|
|||||||
Unlock();
|
Unlock();
|
||||||
|
|
||||||
Error error;
|
Error error;
|
||||||
size_t nbytes = Read(w.data, w.size, error);
|
size_t nbytes = ThreadRead(w.data, w.size, error);
|
||||||
|
|
||||||
Lock();
|
Lock();
|
||||||
cond.broadcast();
|
cond.broadcast();
|
||||||
@@ -118,6 +118,8 @@ ThreadInputStream::ThreadFunc(void *ctx)
|
|||||||
bool
|
bool
|
||||||
ThreadInputStream::Check(Error &error)
|
ThreadInputStream::Check(Error &error)
|
||||||
{
|
{
|
||||||
|
assert(!thread.IsInside());
|
||||||
|
|
||||||
if (postponed_error.IsDefined()) {
|
if (postponed_error.IsDefined()) {
|
||||||
error = std::move(postponed_error);
|
error = std::move(postponed_error);
|
||||||
return false;
|
return false;
|
||||||
@@ -129,12 +131,16 @@ ThreadInputStream::Check(Error &error)
|
|||||||
bool
|
bool
|
||||||
ThreadInputStream::IsAvailable()
|
ThreadInputStream::IsAvailable()
|
||||||
{
|
{
|
||||||
|
assert(!thread.IsInside());
|
||||||
|
|
||||||
return !buffer->IsEmpty() || eof || postponed_error.IsDefined();
|
return !buffer->IsEmpty() || eof || postponed_error.IsDefined();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline size_t
|
inline size_t
|
||||||
ThreadInputStream::Read(void *ptr, size_t read_size, Error &error)
|
ThreadInputStream::Read(void *ptr, size_t read_size, Error &error)
|
||||||
{
|
{
|
||||||
|
assert(!thread.IsInside());
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
if (postponed_error.IsDefined()) {
|
if (postponed_error.IsDefined()) {
|
||||||
error = std::move(postponed_error);
|
error = std::move(postponed_error);
|
||||||
@@ -161,5 +167,7 @@ ThreadInputStream::Read(void *ptr, size_t read_size, Error &error)
|
|||||||
bool
|
bool
|
||||||
ThreadInputStream::IsEOF()
|
ThreadInputStream::IsEOF()
|
||||||
{
|
{
|
||||||
|
assert(!thread.IsInside());
|
||||||
|
|
||||||
return eof;
|
return eof;
|
||||||
}
|
}
|
||||||
|
@@ -39,8 +39,12 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool CheckFirstLine() {
|
bool CheckFirstLine() {
|
||||||
const char *line = tis.ReadLine();
|
char *line = tis.ReadLine();
|
||||||
return line != nullptr && strcmp(line, "#EXTM3U") == 0;
|
if (line == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
StripRight(line);
|
||||||
|
return strcmp(line, "#EXTM3U") == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual DetachedSong *NextSong() override;
|
virtual DetachedSong *NextSong() override;
|
||||||
|
@@ -43,6 +43,7 @@ public:
|
|||||||
typedef typename ForeignFifoBuffer<T>::size_type size_type;
|
typedef typename ForeignFifoBuffer<T>::size_type size_type;
|
||||||
typedef typename ForeignFifoBuffer<T>::pointer_type pointer_type;
|
typedef typename ForeignFifoBuffer<T>::pointer_type pointer_type;
|
||||||
typedef typename ForeignFifoBuffer<T>::const_pointer_type const_pointer_type;
|
typedef typename ForeignFifoBuffer<T>::const_pointer_type const_pointer_type;
|
||||||
|
typedef typename ForeignFifoBuffer<T>::Range Range;
|
||||||
|
|
||||||
explicit DynamicFifoBuffer(size_type _capacity)
|
explicit DynamicFifoBuffer(size_type _capacity)
|
||||||
:ForeignFifoBuffer<T>(new T[_capacity], _capacity) {}
|
:ForeignFifoBuffer<T>(new T[_capacity], _capacity) {}
|
||||||
|
@@ -59,7 +59,6 @@ public:
|
|||||||
constexpr
|
constexpr
|
||||||
StaticFifoBuffer():head(0), tail(0) {}
|
StaticFifoBuffer():head(0), tail(0) {}
|
||||||
|
|
||||||
protected:
|
|
||||||
void Shift() {
|
void Shift() {
|
||||||
if (head == 0)
|
if (head == 0)
|
||||||
return;
|
return;
|
||||||
@@ -74,7 +73,6 @@ protected:
|
|||||||
head = 0;
|
head = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
|
||||||
void Clear() {
|
void Clear() {
|
||||||
head = tail = 0;
|
head = tail = 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user