Pre 0.9.0
- add API to query the bufferattrs after stream creation
-- add proper padsp script that makes $PADSP_xxx env vars from the command line arguments, just like esddsp does
-- move pa_cstrerror() to polypcore/core-error.h
Post 0.9.0:
- alsa mmap driver
polypcore/strbuf.c polypcore/strbuf.h \
polypcore/strlist.c polypcore/strlist.h \
polypcore/tagstruct.c polypcore/tagstruct.h \
+ polypcore/core-error.c polypcore/core-error.h \
polypcore/winsock.h
if OS_IS_WIN32
polypcore/source-output.c polypcore/source-output.h \
polypcore/strbuf.c polypcore/strbuf.h \
polypcore/tokenizer.c polypcore/tokenizer.h \
- polypcore/winsock.h
+ polypcore/winsock.h \
+ polypcore/core-error.c polypcore/core-error.h
if OS_IS_WIN32
libpolypcore_la_SOURCES += \
chmod u+s $(DESTDIR)$(bindir)/polypaudio
ln -sf pacat $(DESTDIR)$(bindir)/parec
rm -f $(DESTDIR)$(modlibexecdir)/*.a
+
+.PHONY: utils/padsp
#include <sys/capability.h>
#endif
-#include <polyp/error.h>
+#include <polypcore/core-error.h>
#include <polypcore/log.h>
#include <assert.h>
#include <unistd.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/strbuf.h>
#include <polypcore/conf-parser.h>
#include "../polypcore/winsock.h"
-#include <polyp/error.h>
#include <polyp/mainloop.h>
#include <polyp/mainloop-signal.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core.h>
#include <polypcore/memblock.h>
#include <polypcore/module.h>
#include <asoundlib.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core.h>
#include <polypcore/module.h>
#include <polypcore/memchunk.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/modargs.h>
#include <polypcore/log.h>
#include <string.h>
#include <errno.h>
-#include <polyp/error.h>
-
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/modargs.h>
#include <polypcore/core-util.h>
#include <errno.h>
#include <signal.h>
-#include <polyp/error.h>
-
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/core-util.h>
#include <polypcore/modargs.h>
#include <unistd.h>
#include <limits.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/sink.h>
#include <polypcore/module.h>
#include <jack/jack.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/sink.h>
#include <polypcore/module.h>
#include <jack/jack.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/source.h>
#include <polypcore/module.h>
#include <stdio.h>
#include <stdlib.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/core-util.h>
#include <polypcore/modargs.h>
#include <linux/input.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/log.h>
#include <polypcore/namereg.h>
#include <limits.h>
#include <sys/mman.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/sink.h>
#include <polypcore/source.h>
#include <unistd.h>
#include <limits.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/sink.h>
#include <polypcore/source.h>
#include <unistd.h>
#include <limits.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/sink.h>
#include <polypcore/module.h>
#include <unistd.h>
#include <limits.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/iochannel.h>
#include <polypcore/source.h>
#include <polypcore/module.h>
#include "../polypcore/winsock.h"
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/socket-server.h>
#include <polypcore/socket-util.h>
#include <stdlib.h>
#include <ctype.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/core-util.h>
#include <polypcore/modargs.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <polyp/error.h>
-
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
#include <string.h>
#include <unistd.h>
-#include <polyp/error.h>
#include <polyp/timeval.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/llist.h>
#include <polypcore/sink.h>
#include <string.h>
#include <unistd.h>
-#include <polyp/error.h>
#include <polyp/timeval.h>
#include <polyp/util.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/module.h>
#include <polypcore/llist.h>
#include <polypcore/source.h>
#include <sys/filio.h>
#endif
-#include <polyp/error.h>
-
+#include <polypcore/core-error.h>
#include <polypcore/log.h>
#include "rtp.h"
#include <sys/filio.h>
#endif
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
#include <errno.h>
#include <string.h>
-#include <polyp/error.h>
+#include <polypcore/core-error.h>
#include <polyp/xmalloc.h>
#include <polypcore/log.h>
#include "../polypcore/winsock.h"
-#include <polyp/error.h>
+#include <polypcore/core-error.h>
#include <polyp/version.h>
#include <polyp/xmalloc.h>
#include <stdlib.h>
#include <string.h>
-#ifdef HAVE_PTHREAD
-#include <pthread.h>
-#endif
-
-#ifdef HAVE_WINDOWS_H
-#include <windows.h>
-#endif
-
-#include <polyp/utf8.h>
#include <polyp/xmalloc.h>
#include <polypcore/core-util.h>
#include "error.h"
-static const char* const errortab[PA_ERR_MAX] = {
- [PA_OK] = "OK",
- [PA_ERR_ACCESS] = "Access denied",
- [PA_ERR_COMMAND] = "Unknown command",
- [PA_ERR_INVALID] = "Invalid argument",
- [PA_ERR_EXIST] = "Entity exists",
- [PA_ERR_NOENTITY] = "No such entity",
- [PA_ERR_CONNECTIONREFUSED] = "Connection refused",
- [PA_ERR_PROTOCOL] = "Protocol error",
- [PA_ERR_TIMEOUT] = "Timeout",
- [PA_ERR_AUTHKEY] = "No authorization key",
- [PA_ERR_INTERNAL] = "Internal error",
- [PA_ERR_CONNECTIONTERMINATED] = "Connection terminated",
- [PA_ERR_KILLED] = "Entity killed",
- [PA_ERR_INVALIDSERVER] = "Invalid server",
- [PA_ERR_MODINITFAILED] = "Module initalization failed",
- [PA_ERR_BADSTATE] = "Bad state",
- [PA_ERR_NODATA] = "No data",
- [PA_ERR_VERSION] = "Incompatible protocol version",
- [PA_ERR_TOOLARGE] = "Too large"
-};
-
const char*pa_strerror(int error) {
+
+ static const char* const errortab[PA_ERR_MAX] = {
+ [PA_OK] = "OK",
+ [PA_ERR_ACCESS] = "Access denied",
+ [PA_ERR_COMMAND] = "Unknown command",
+ [PA_ERR_INVALID] = "Invalid argument",
+ [PA_ERR_EXIST] = "Entity exists",
+ [PA_ERR_NOENTITY] = "No such entity",
+ [PA_ERR_CONNECTIONREFUSED] = "Connection refused",
+ [PA_ERR_PROTOCOL] = "Protocol error",
+ [PA_ERR_TIMEOUT] = "Timeout",
+ [PA_ERR_AUTHKEY] = "No authorization key",
+ [PA_ERR_INTERNAL] = "Internal error",
+ [PA_ERR_CONNECTIONTERMINATED] = "Connection terminated",
+ [PA_ERR_KILLED] = "Entity killed",
+ [PA_ERR_INVALIDSERVER] = "Invalid server",
+ [PA_ERR_MODINITFAILED] = "Module initalization failed",
+ [PA_ERR_BADSTATE] = "Bad state",
+ [PA_ERR_NODATA] = "No data",
+ [PA_ERR_VERSION] = "Incompatible protocol version",
+ [PA_ERR_TOOLARGE] = "Too large"
+ };
+
if (error < 0 || error >= PA_ERR_MAX)
return NULL;
return errortab[error];
}
-
-#ifdef HAVE_PTHREAD
-
-static pthread_once_t cstrerror_once = PTHREAD_ONCE_INIT;
-static pthread_key_t tlsstr_key;
-
-static void inittls(void) {
- int ret;
-
- ret = pthread_key_create(&tlsstr_key, pa_xfree);
- if (ret) {
- fprintf(stderr, __FILE__ ": CRITICAL: Unable to allocate TLS key (%d)\n", errno);
- exit(-1);
- }
-}
-
-#elif HAVE_WINDOWS_H
-
-static DWORD tlsstr_key = TLS_OUT_OF_INDEXES;
-static DWORD monitor_key = TLS_OUT_OF_INDEXES;
-
-static void inittls(void) {
- HANDLE mutex;
- char name[64];
-
- sprintf(name, "polypaudio%d", (int)GetCurrentProcessId());
-
- mutex = CreateMutex(NULL, FALSE, name);
- if (!mutex) {
- fprintf(stderr, __FILE__ ": CRITICAL: Unable to create named mutex (%d)\n", (int)GetLastError());
- exit(-1);
- }
-
- WaitForSingleObject(mutex, INFINITE);
-
- if (tlsstr_key == TLS_OUT_OF_INDEXES) {
- tlsstr_key = TlsAlloc();
- monitor_key = TlsAlloc();
- if ((tlsstr_key == TLS_OUT_OF_INDEXES) || (monitor_key == TLS_OUT_OF_INDEXES)) {
- fprintf(stderr, __FILE__ ": CRITICAL: Unable to allocate TLS key (%d)\n", (int)GetLastError());
- exit(-1);
- }
- }
-
- ReleaseMutex(mutex);
-
- CloseHandle(mutex);
-}
-
-/*
- * This is incredibly brain dead, but this is necessary when dealing with
- * the hell that is Win32.
- */
-struct monitor_data {
- HANDLE thread;
- void *data;
-};
-
-static DWORD WINAPI monitor_thread(LPVOID param) {
- struct monitor_data *data;
-
- data = (struct monitor_data*)param;
- assert(data);
-
- WaitForSingleObject(data->thread, INFINITE);
-
- CloseHandle(data->thread);
- pa_xfree(data->data);
- pa_xfree(data);
-
- return 0;
-}
-
-static void start_monitor(void) {
- HANDLE thread;
- struct monitor_data *data;
-
- data = pa_xnew(struct monitor_data, 1);
- assert(data);
-
- DuplicateHandle(GetCurrentProcess(), GetCurrentThread(),
- GetCurrentProcess(), &data->thread, 0, FALSE, DUPLICATE_SAME_ACCESS);
-
- thread = CreateThread(NULL, 0, monitor_thread, data, 0, NULL);
- assert(thread);
-
- TlsSetValue(monitor_key, data);
-
- CloseHandle(thread);
-}
-
-#else
-
-/* Unsafe, but we have no choice */
-static char *tlsstr;
-
-#endif
-
-const char* pa_cstrerror(int errnum) {
- const char *origbuf;
-
-#ifdef HAVE_STRERROR_R
- char errbuf[128];
-#endif
-
-#ifdef HAVE_PTHREAD
- char *tlsstr;
-
- pthread_once(&cstrerror_once, inittls);
-
- tlsstr = pthread_getspecific(tlsstr_key);
-#elif defined(HAVE_WINDOWS_H)
- char *tlsstr;
- struct monitor_data *data;
-
- inittls();
-
- tlsstr = TlsGetValue(tlsstr_key);
- if (!tlsstr)
- start_monitor();
- data = TlsGetValue(monitor_key);
-#endif
-
- if (tlsstr)
- pa_xfree(tlsstr);
-
-#ifdef HAVE_STRERROR_R
-
-#ifdef __GLIBC__
- origbuf = strerror_r(errnum, errbuf, sizeof(errbuf));
- if (origbuf == NULL)
- origbuf = "";
-#else
- if (strerror_r(errnum, errbuf, sizeof(errbuf)) == 0) {
- origbuf = errbuf;
- errbuf[sizeof(errbuf) - 1] = '\0';
- } else
- origbuf = "";
-#endif
-
-#else
- /* This might not be thread safe, but we hope for the best */
- origbuf = strerror(errnum);
-#endif
-
- tlsstr = pa_locale_to_utf8(origbuf);
- if (!tlsstr) {
- fprintf(stderr, "Unable to convert, filtering\n");
- tlsstr = pa_utf8_filter(origbuf);
- }
-
-#ifdef HAVE_PTHREAD
- pthread_setspecific(tlsstr_key, tlsstr);
-#elif defined(HAVE_WINDOWS_H)
- TlsSetValue(tlsstr_key, tlsstr);
- data->data = tlsstr;
-#endif
-
- return tlsstr;
-}
/** Return a human readable error message for the specified numeric error code */
const char* pa_strerror(int error);
-/** A wrapper around the standard strerror() function that converts the
- * string to UTF-8. The function is thread safe but the returned string is
- * only guaranteed to exist until the thread exits or pa_cstrerror() is
- * called again from the same thread. */
-const char* pa_cstrerror(int errnum);
-
PA_C_DECL_END
#endif
#include <windows.h>
#endif
-#include <polyp/error.h>
+#include <polypcore/core-error.h>
#include <polyp/xmalloc.h>
#include <polypcore/core-util.h>
#include "../polypcore/pipe.h"
#endif
-#include <polyp/error.h>
+#include <polypcore/core-error.h>
#include <polyp/timeval.h>
#include <polyp/xmalloc.h>
#include "../polypcore/winsock.h"
-#include <polyp/error.h>
-
+#include <polypcore/core-error.h>
#include <polypcore/log.h>
#include <polypcore/core-util.h>
#include <limits.h>
#include <sys/stat.h>
-#include <polyp/error.h>
#include <polyp/util.h>
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
#include <polypcore/random.h>
#include <stdlib.h>
#include <errno.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
#include <polypcore/module.h>
#include <polypcore/sound-file-stream.h>
#include <polypcore/props.h>
#include <polypcore/core-util.h>
+#include <polypcore/core-error.h>
#include "cli-command.h"
#include <stdio.h>
#include <errno.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/log.h>
#include <polypcore/core-util.h>
--- /dev/null
+/* $Id$ */
+
+/***
+ This file is part of polypaudio.
+
+ polypaudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License,
+ or (at your option) any later version.
+
+ polypaudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with polypaudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef HAVE_PTHREAD
+#include <pthread.h>
+#endif
+
+#ifdef HAVE_WINDOWS_H
+#include <windows.h>
+#endif
+
+#include <polyp/utf8.h>
+#include <polyp/xmalloc.h>
+
+#include <polypcore/core-util.h>
+#include <polypcore/native-common.h>
+
+#include "core-error.h"
+
+#ifdef HAVE_PTHREAD
+
+static pthread_once_t cstrerror_once = PTHREAD_ONCE_INIT;
+static pthread_key_t tlsstr_key;
+
+static void inittls(void) {
+ int ret;
+
+ ret = pthread_key_create(&tlsstr_key, pa_xfree);
+ if (ret) {
+ fprintf(stderr, __FILE__ ": CRITICAL: Unable to allocate TLS key (%d)\n", errno);
+ exit(-1);
+ }
+}
+
+#elif HAVE_WINDOWS_H
+
+static DWORD tlsstr_key = TLS_OUT_OF_INDEXES;
+static DWORD monitor_key = TLS_OUT_OF_INDEXES;
+
+static void inittls(void) {
+ HANDLE mutex;
+ char name[64];
+
+ sprintf(name, "polypaudio%d", (int)GetCurrentProcessId());
+
+ mutex = CreateMutex(NULL, FALSE, name);
+ if (!mutex) {
+ fprintf(stderr, __FILE__ ": CRITICAL: Unable to create named mutex (%d)\n", (int)GetLastError());
+ exit(-1);
+ }
+
+ WaitForSingleObject(mutex, INFINITE);
+
+ if (tlsstr_key == TLS_OUT_OF_INDEXES) {
+ tlsstr_key = TlsAlloc();
+ monitor_key = TlsAlloc();
+ if ((tlsstr_key == TLS_OUT_OF_INDEXES) || (monitor_key == TLS_OUT_OF_INDEXES)) {
+ fprintf(stderr, __FILE__ ": CRITICAL: Unable to allocate TLS key (%d)\n", (int)GetLastError());
+ exit(-1);
+ }
+ }
+
+ ReleaseMutex(mutex);
+
+ CloseHandle(mutex);
+}
+
+/*
+ * This is incredibly brain dead, but this is necessary when dealing with
+ * the hell that is Win32.
+ */
+struct monitor_data {
+ HANDLE thread;
+ void *data;
+};
+
+static DWORD WINAPI monitor_thread(LPVOID param) {
+ struct monitor_data *data;
+
+ data = (struct monitor_data*)param;
+ assert(data);
+
+ WaitForSingleObject(data->thread, INFINITE);
+
+ CloseHandle(data->thread);
+ pa_xfree(data->data);
+ pa_xfree(data);
+
+ return 0;
+}
+
+static void start_monitor(void) {
+ HANDLE thread;
+ struct monitor_data *data;
+
+ data = pa_xnew(struct monitor_data, 1);
+ assert(data);
+
+ DuplicateHandle(GetCurrentProcess(), GetCurrentThread(),
+ GetCurrentProcess(), &data->thread, 0, FALSE, DUPLICATE_SAME_ACCESS);
+
+ thread = CreateThread(NULL, 0, monitor_thread, data, 0, NULL);
+ assert(thread);
+
+ TlsSetValue(monitor_key, data);
+
+ CloseHandle(thread);
+}
+
+#else
+
+/* Unsafe, but we have no choice */
+static char *tlsstr;
+
+#endif
+
+const char* pa_cstrerror(int errnum) {
+ const char *origbuf;
+
+#ifdef HAVE_STRERROR_R
+ char errbuf[128];
+#endif
+
+#ifdef HAVE_PTHREAD
+ char *tlsstr;
+
+ pthread_once(&cstrerror_once, inittls);
+
+ tlsstr = pthread_getspecific(tlsstr_key);
+#elif defined(HAVE_WINDOWS_H)
+ char *tlsstr;
+ struct monitor_data *data;
+
+ inittls();
+
+ tlsstr = TlsGetValue(tlsstr_key);
+ if (!tlsstr)
+ start_monitor();
+ data = TlsGetValue(monitor_key);
+#endif
+
+ if (tlsstr)
+ pa_xfree(tlsstr);
+
+#ifdef HAVE_STRERROR_R
+
+#ifdef __GLIBC__
+ origbuf = strerror_r(errnum, errbuf, sizeof(errbuf));
+ if (origbuf == NULL)
+ origbuf = "";
+#else
+ if (strerror_r(errnum, errbuf, sizeof(errbuf)) == 0) {
+ origbuf = errbuf;
+ errbuf[sizeof(errbuf) - 1] = '\0';
+ } else
+ origbuf = "";
+#endif
+
+#else
+ /* This might not be thread safe, but we hope for the best */
+ origbuf = strerror(errnum);
+#endif
+
+ tlsstr = pa_locale_to_utf8(origbuf);
+ if (!tlsstr) {
+ fprintf(stderr, "Unable to convert, filtering\n");
+ tlsstr = pa_utf8_filter(origbuf);
+ }
+
+#ifdef HAVE_PTHREAD
+ pthread_setspecific(tlsstr_key, tlsstr);
+#elif defined(HAVE_WINDOWS_H)
+ TlsSetValue(tlsstr_key, tlsstr);
+ data->data = tlsstr;
+#endif
+
+ return tlsstr;
+}
--- /dev/null
+#ifndef foocoreerrorhfoo
+#define foocoreerrorhfoo
+
+/* $Id$ */
+
+/***
+ This file is part of polypaudio.
+
+ polypaudio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2 of the License,
+ or (at your option) any later version.
+
+ polypaudio is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with polypaudio; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ USA.
+***/
+
+#include <inttypes.h>
+#include <polyp/cdecl.h>
+
+/** \file
+ * Error management */
+
+PA_C_DECL_BEGIN
+
+/** A wrapper around the standard strerror() function that converts the
+ * string to UTF-8. The function is thread safe but the returned string is
+ * only guaranteed to exist until the thread exits or pa_cstrerror() is
+ * called again from the same thread. */
+const char* pa_cstrerror(int errnum);
+
+PA_C_DECL_END
+
+#endif
#include <windows.h>
#endif
-#include <polyp/error.h>
#include <polyp/mainloop.h>
#include <polyp/channelmap.h>
#include <polyp/timeval.h>
#include <polypcore/sound-file.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
+#include <polypcore/core-error.h>
#include "core-scache.h"
#include <samplerate.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
#include <polyp/util.h>
+#include <polypcore/core-error.h>
#include <polypcore/winsock.h>
#include <polypcore/log.h>
#include "winsock.h"
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/socket-util.h>
#include <polypcore/log.h>
#include <stdlib.h>
#include <string.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/log.h>
#include "ioline.h"
#include <windows.h>
#endif
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
#include <stdlib.h>
#include <limits.h>
-#include <polyp/error.h>
#include <polyp/sample.h>
#include <polyp/timeval.h>
#include <polyp/utf8.h>
#include <polypcore/namereg.h>
#include <polypcore/log.h>
#include <polypcore/core-util.h>
+#include <polypcore/core-error.h>
#include "endianmacros.h"
#include <errno.h>
#include <string.h>
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
#include <polypcore/sink-input.h>
#include <polypcore/sample-util.h>
#include <polypcore/namereg.h>
#include <polypcore/log.h>
+#include <polypcore/core-error.h>
#include "protocol-simple.h"
#include "winsock.h"
-#include <polyp/error.h>
#include <polyp/timeval.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/socket-util.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
#include <polyp/xmalloc.h>
#include <polyp/util.h>
-#include <polyp/error.h>
#include <polypcore/socket-util.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
+#include <polypcore/core-error.h>
#include "socket-server.h"
#include "winsock.h"
-#include <polyp/error.h>
#include <polyp/xmalloc.h>
+#include <polypcore/core-error.h>
#include <polypcore/core-util.h>
#include <polypcore/log.h>
}
if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
- pa_log(__FILE__": socket(PF_UNIX, SOCK_STREAM, 0): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": socket(PF_UNIX, SOCK_STREAM, 0): %s", strerror(errno));
goto fail;
}
int r;
if ((r = connect(fd, (struct sockaddr*) &sa, sizeof(sa))) < 0 && (errno != ECONNREFUSED && errno != ENOENT)) {
- pa_log(__FILE__": connect(): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": connect(): %s", strerror(errno));
goto fail;
}
for (;;) {
if (select(FD_SETSIZE, &ifds, &ofds, NULL, NULL) < 0) {
- pa_log(__FILE__": select(): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": select(): %s", strerror(errno));
goto fail;
}
if (r == 0)
break;
- pa_log(__FILE__": read(): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": read(): %s", strerror(errno));
goto fail;
}
if (r == 0)
break;
- pa_log(__FILE__": read(): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": read(): %s", strerror(errno));
goto fail;
}
assert(obuf_length);
if ((r = write(1, obuf + obuf_index, obuf_length)) < 0) {
- pa_log(__FILE__": write(): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": write(): %s", strerror(errno));
goto fail;
}
assert(ibuf_length);
if ((r = write(fd, ibuf + ibuf_index, ibuf_length)) < 0) {
- pa_log(__FILE__": write(): %s", pa_cstrerror(errno));
+ pa_log(__FILE__": write(): %s", strerror(errno));
goto fail;
}
i->n_fragments = 0;
}
-static char *client_name(char *buf, size_t n) {
+static const char *client_name(char *buf, size_t n) {
char p[PATH_MAX];
const char *e;
return buf;
}
-static char *stream_name(void) {
+static const char *stream_name(void) {
const char *e;
if ((e = getenv("PADSP_STREAM_NAME")))