mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
cleanups
This commit is contained in:
parent
1d61fd3696
commit
ee67929a7c
11 changed files with 24 additions and 147 deletions
|
|
@ -116,7 +116,7 @@ core_dispatch_func (void *object,
|
||||||
case PINOS_MESSAGE_NOTIFY_GLOBAL:
|
case PINOS_MESSAGE_NOTIFY_GLOBAL:
|
||||||
{
|
{
|
||||||
PinosMessageNotifyGlobal *ng = message;
|
PinosMessageNotifyGlobal *ng = message;
|
||||||
pinos_log_warn ("global %u %s", ng->id, ng->type);
|
pinos_log_debug ("got global %u %s", ng->id, ng->type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
@ -165,8 +165,6 @@ on_context_data (SpaSource *source,
|
||||||
void *p = alloca (size);
|
void *p = alloca (size);
|
||||||
PinosProxy *proxy;
|
PinosProxy *proxy;
|
||||||
|
|
||||||
pinos_log_error ("context %p: got message %d from %u", this, type, id);
|
|
||||||
|
|
||||||
if (!pinos_connection_parse_message (conn, p)) {
|
if (!pinos_connection_parse_message (conn, p)) {
|
||||||
pinos_log_error ("context %p: failed to parse message", this);
|
pinos_log_error ("context %p: failed to parse message", this);
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -193,7 +191,6 @@ context_send_func (void *object,
|
||||||
{
|
{
|
||||||
PinosContextImpl *impl = SPA_CONTAINER_OF (data, PinosContextImpl, this);
|
PinosContextImpl *impl = SPA_CONTAINER_OF (data, PinosContextImpl, this);
|
||||||
|
|
||||||
pinos_log_error ("context %p: send message %d to %u", &impl->this, type, id);
|
|
||||||
pinos_connection_add_message (impl->connection,
|
pinos_connection_add_message (impl->connection,
|
||||||
id,
|
id,
|
||||||
type,
|
type,
|
||||||
|
|
|
||||||
|
|
@ -94,5 +94,4 @@ bool pinos_context_disconnect (PinosContext *contex
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif /* __PINOS_CONTEXT_H__ */
|
#endif /* __PINOS_CONTEXT_H__ */
|
||||||
|
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
/* Pinos
|
|
||||||
* Copyright (C) 2015 Wim Taymans <wim.taymans@gmail.com>
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Library General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Library General Public
|
|
||||||
* License along with this library; if not, write to the
|
|
||||||
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
||||||
* Boston, MA 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __PINOS_OBJECT_H__
|
|
||||||
#define __PINOS_OBJECT_H__
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include <pinos/client/signal.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct _PinosObject PinosObject;
|
|
||||||
typedef struct _PinosInterface PinosInterface;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
PINOS_OBJECT_FLAG_NONE = 0,
|
|
||||||
PINOS_OBJECT_FLAG_DESTROYING = (1 << 0),
|
|
||||||
} PinosObjectFlags;
|
|
||||||
|
|
||||||
typedef void (*PinosDestroyFunc) (PinosObject *object);
|
|
||||||
|
|
||||||
struct _PinosInterface {
|
|
||||||
uint32_t type;
|
|
||||||
void *iface;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _PinosObject {
|
|
||||||
uint32_t id;
|
|
||||||
PinosObjectFlags flags;
|
|
||||||
PinosDestroyFunc destroy;
|
|
||||||
PINOS_SIGNAL (destroy_signal, (PinosListener *listener,
|
|
||||||
PinosObject *object));
|
|
||||||
unsigned int n_interfaces;
|
|
||||||
PinosInterface *interfaces;
|
|
||||||
};
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
pinos_object_init (PinosObject *object,
|
|
||||||
PinosDestroyFunc destroy,
|
|
||||||
unsigned int n_interfaces,
|
|
||||||
PinosInterface *interfaces)
|
|
||||||
{
|
|
||||||
object->id = SPA_ID_INVALID;
|
|
||||||
object->flags = 0;
|
|
||||||
object->destroy = destroy;
|
|
||||||
pinos_signal_init (&object->destroy_signal);
|
|
||||||
object->n_interfaces = n_interfaces;
|
|
||||||
object->interfaces = interfaces;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void *
|
|
||||||
pinos_object_get_interface (PinosObject *object,
|
|
||||||
uint32_t type)
|
|
||||||
{
|
|
||||||
unsigned int i;
|
|
||||||
for (i = 0; i < object->n_interfaces; i++)
|
|
||||||
if (object->interfaces[i].type == type)
|
|
||||||
return object->interfaces[i].iface;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
pinos_object_destroy (PinosObject *object)
|
|
||||||
{
|
|
||||||
object->flags |= PINOS_OBJECT_FLAG_DESTROYING;
|
|
||||||
pinos_signal_emit (&object->destroy_signal, object);
|
|
||||||
if (object->destroy)
|
|
||||||
object->destroy (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __PINOS_OBJECT_H__ */
|
|
||||||
|
|
@ -37,13 +37,6 @@ extern "C" {
|
||||||
|
|
||||||
#include <spa/include/spa/id-map.h>
|
#include <spa/include/spa/id-map.h>
|
||||||
|
|
||||||
#define PINOS_DBUS_SERVICE "org.pinos"
|
|
||||||
#define PINOS_DBUS_OBJECT_PREFIX "/org/pinos"
|
|
||||||
#define PINOS_DBUS_OBJECT_SERVER PINOS_DBUS_OBJECT_PREFIX "/server"
|
|
||||||
#define PINOS_DBUS_OBJECT_CLIENT PINOS_DBUS_OBJECT_PREFIX "/client"
|
|
||||||
#define PINOS_DBUS_OBJECT_NODE PINOS_DBUS_OBJECT_PREFIX "/node"
|
|
||||||
#define PINOS_DBUS_OBJECT_LINK PINOS_DBUS_OBJECT_PREFIX "/link"
|
|
||||||
|
|
||||||
void pinos_init (int *argc, char **argv[]);
|
void pinos_init (int *argc, char **argv[]);
|
||||||
|
|
||||||
char * pinos_client_name (void);
|
char * pinos_client_name (void);
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,6 @@ struct _PinosListener {
|
||||||
void (*notify) (void *);
|
void (*notify) (void *);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if 0
|
|
||||||
struct _PinosSignal {
|
|
||||||
SpaList listeners;
|
|
||||||
void (*notify) (PinosListener *listener, void *object, void *data);
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PINOS_SIGNAL(name,func) \
|
#define PINOS_SIGNAL(name,func) \
|
||||||
union { \
|
union { \
|
||||||
SpaList listeners; \
|
SpaList listeners; \
|
||||||
|
|
|
||||||
|
|
@ -406,15 +406,6 @@ handle_rtnode_event (PinosStream *stream,
|
||||||
PinosStreamImpl *impl = SPA_CONTAINER_OF (stream, PinosStreamImpl, this);
|
PinosStreamImpl *impl = SPA_CONTAINER_OF (stream, PinosStreamImpl, this);
|
||||||
|
|
||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case SPA_NODE_EVENT_TYPE_INVALID:
|
|
||||||
case SPA_NODE_EVENT_TYPE_ASYNC_COMPLETE:
|
|
||||||
case SPA_NODE_EVENT_TYPE_ERROR:
|
|
||||||
case SPA_NODE_EVENT_TYPE_BUFFERING:
|
|
||||||
case SPA_NODE_EVENT_TYPE_REQUEST_REFRESH:
|
|
||||||
case SPA_NODE_EVENT_TYPE_REQUEST_CLOCK_UPDATE:
|
|
||||||
pinos_log_warn ("unexpected node event %d", event->type);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SPA_NODE_EVENT_TYPE_HAVE_OUTPUT:
|
case SPA_NODE_EVENT_TYPE_HAVE_OUTPUT:
|
||||||
case SPA_NODE_EVENT_TYPE_NEED_INPUT:
|
case SPA_NODE_EVENT_TYPE_NEED_INPUT:
|
||||||
pinos_log_warn ("unhandled node event %d", event->type);
|
pinos_log_warn ("unhandled node event %d", event->type);
|
||||||
|
|
@ -436,6 +427,9 @@ handle_rtnode_event (PinosStream *stream,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
default:
|
||||||
|
pinos_log_warn ("unexpected node event %d", event->type);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -501,7 +495,6 @@ handle_socket (PinosStream *stream, int rtfd)
|
||||||
false,
|
false,
|
||||||
on_rtsocket_condition,
|
on_rtsocket_condition,
|
||||||
stream);
|
stream);
|
||||||
pinos_log_debug ("socket %d", impl->rtfd);
|
|
||||||
|
|
||||||
impl->timeout_source = pinos_loop_add_timer (stream->context->loop,
|
impl->timeout_source = pinos_loop_add_timer (stream->context->loop,
|
||||||
on_timeout,
|
on_timeout,
|
||||||
|
|
@ -831,7 +824,7 @@ stream_dispatch_func (void *object,
|
||||||
info.size = p->size;
|
info.size = p->size;
|
||||||
|
|
||||||
if (impl->trans)
|
if (impl->trans)
|
||||||
pinos_transport_free (impl->trans);
|
pinos_transport_destroy (impl->trans);
|
||||||
impl->trans = pinos_transport_new_from_info (&info);
|
impl->trans = pinos_transport_new_from_info (&info);
|
||||||
|
|
||||||
pinos_log_debug ("transport update %d %p", impl->rtfd, impl->trans);
|
pinos_log_debug ("transport update %d %p", impl->rtfd, impl->trans);
|
||||||
|
|
@ -907,6 +900,7 @@ pinos_stream_connect (PinosStream *stream,
|
||||||
items[0].value = port_path;
|
items[0].value = port_path;
|
||||||
ccn.props = &dict;
|
ccn.props = &dict;
|
||||||
ccn.id = impl->node_proxy->id;
|
ccn.id = impl->node_proxy->id;
|
||||||
|
|
||||||
pinos_proxy_send_message (stream->context->core_proxy,
|
pinos_proxy_send_message (stream->context->core_proxy,
|
||||||
PINOS_MESSAGE_CREATE_CLIENT_NODE,
|
PINOS_MESSAGE_CREATE_CLIENT_NODE,
|
||||||
&ccn,
|
&ccn,
|
||||||
|
|
@ -969,7 +963,6 @@ pinos_stream_finish_format (PinosStream *stream,
|
||||||
*
|
*
|
||||||
* Start capturing from @stream.
|
* Start capturing from @stream.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
* Returns: %true on success.
|
* Returns: %true on success.
|
||||||
*/
|
*/
|
||||||
bool
|
bool
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
#include <pinos/client/log.h>
|
#include <pinos/client/log.h>
|
||||||
|
|
@ -101,6 +102,7 @@ pinos_transport_new (unsigned int max_inputs,
|
||||||
impl->offset = 0;
|
impl->offset = 0;
|
||||||
|
|
||||||
trans = &impl->trans;
|
trans = &impl->trans;
|
||||||
|
pinos_signal_init (&trans->destroy_signal);
|
||||||
|
|
||||||
pinos_memblock_alloc (PINOS_MEMBLOCK_FLAG_WITH_FD |
|
pinos_memblock_alloc (PINOS_MEMBLOCK_FLAG_WITH_FD |
|
||||||
PINOS_MEMBLOCK_FLAG_MAP_READWRITE |
|
PINOS_MEMBLOCK_FLAG_MAP_READWRITE |
|
||||||
|
|
@ -121,11 +123,9 @@ pinos_transport_new_from_info (PinosTransportInfo *info)
|
||||||
PinosTransport *trans;
|
PinosTransport *trans;
|
||||||
void *tmp;
|
void *tmp;
|
||||||
|
|
||||||
if (info == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
impl = calloc (1, sizeof (PinosTransportImpl));
|
impl = calloc (1, sizeof (PinosTransportImpl));
|
||||||
trans = &impl->trans;
|
trans = &impl->trans;
|
||||||
|
pinos_signal_init (&trans->destroy_signal);
|
||||||
|
|
||||||
impl->mem.flags = PINOS_MEMBLOCK_FLAG_MAP_READWRITE |
|
impl->mem.flags = PINOS_MEMBLOCK_FLAG_MAP_READWRITE |
|
||||||
PINOS_MEMBLOCK_FLAG_WITH_FD;
|
PINOS_MEMBLOCK_FLAG_WITH_FD;
|
||||||
|
|
@ -133,7 +133,7 @@ pinos_transport_new_from_info (PinosTransportInfo *info)
|
||||||
impl->mem.size = info->size;
|
impl->mem.size = info->size;
|
||||||
impl->mem.ptr = mmap (NULL, info->size, PROT_READ | PROT_WRITE, MAP_SHARED, info->memfd, info->offset);
|
impl->mem.ptr = mmap (NULL, info->size, PROT_READ | PROT_WRITE, MAP_SHARED, info->memfd, info->offset);
|
||||||
if (impl->mem.ptr == MAP_FAILED) {
|
if (impl->mem.ptr == MAP_FAILED) {
|
||||||
pinos_log_warn ("transport %p: failed to map fd %d", impl, info->memfd);
|
pinos_log_warn ("transport %p: failed to map fd %d: %s", impl, info->memfd, strerror (errno));
|
||||||
goto mmap_failed;
|
goto mmap_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -158,13 +158,10 @@ mmap_failed:
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
pinos_transport_free (PinosTransport *trans)
|
pinos_transport_destroy (PinosTransport *trans)
|
||||||
{
|
{
|
||||||
PinosTransportImpl *impl = (PinosTransportImpl *) trans;
|
PinosTransportImpl *impl = (PinosTransportImpl *) trans;
|
||||||
|
|
||||||
if (impl == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
pinos_memblock_free (&impl->mem);
|
pinos_memblock_free (&impl->mem);
|
||||||
free (impl);
|
free (impl);
|
||||||
}
|
}
|
||||||
|
|
@ -175,9 +172,6 @@ pinos_transport_get_info (PinosTransport *trans,
|
||||||
{
|
{
|
||||||
PinosTransportImpl *impl = (PinosTransportImpl *) trans;
|
PinosTransportImpl *impl = (PinosTransportImpl *) trans;
|
||||||
|
|
||||||
if (impl == NULL)
|
|
||||||
return SPA_RESULT_INVALID_ARGUMENTS;
|
|
||||||
|
|
||||||
info->memfd = impl->mem.fd;
|
info->memfd = impl->mem.fd;
|
||||||
info->offset = impl->offset;
|
info->offset = impl->offset;
|
||||||
info->size = impl->mem.size;
|
info->size = impl->mem.size;
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,8 @@ typedef struct _PinosTransportArea PinosTransportArea;
|
||||||
#include <spa/port.h>
|
#include <spa/port.h>
|
||||||
#include <spa/node.h>
|
#include <spa/node.h>
|
||||||
|
|
||||||
#include <pinos/client/connection.h>
|
|
||||||
#include <pinos/client/mem.h>
|
#include <pinos/client/mem.h>
|
||||||
|
#include <pinos/client/signal.h>
|
||||||
|
|
||||||
#define PINOS_TRANSPORT_CMD_NONE 0
|
#define PINOS_TRANSPORT_CMD_NONE 0
|
||||||
#define PINOS_TRANSPORT_CMD_NEED_DATA (1<<0)
|
#define PINOS_TRANSPORT_CMD_NEED_DATA (1<<0)
|
||||||
|
|
@ -61,6 +61,9 @@ struct _PinosTransportArea {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _PinosTransport {
|
struct _PinosTransport {
|
||||||
|
PINOS_SIGNAL (destroy_signal, (PinosListener *listener,
|
||||||
|
PinosTransport *trans));
|
||||||
|
|
||||||
PinosTransportArea *area;
|
PinosTransportArea *area;
|
||||||
SpaPortInput *inputs;
|
SpaPortInput *inputs;
|
||||||
SpaPortOutput *outputs;
|
SpaPortOutput *outputs;
|
||||||
|
|
@ -74,7 +77,7 @@ PinosTransport * pinos_transport_new (unsigned int max_inputs,
|
||||||
unsigned int max_outputs);
|
unsigned int max_outputs);
|
||||||
PinosTransport * pinos_transport_new_from_info (PinosTransportInfo *info);
|
PinosTransport * pinos_transport_new_from_info (PinosTransportInfo *info);
|
||||||
|
|
||||||
void pinos_transport_free (PinosTransport *trans);
|
void pinos_transport_destroy (PinosTransport *trans);
|
||||||
|
|
||||||
SpaResult pinos_transport_get_info (PinosTransport *trans,
|
SpaResult pinos_transport_get_info (PinosTransport *trans,
|
||||||
PinosTransportInfo *info);
|
PinosTransportInfo *info);
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,13 @@
|
||||||
|
|
||||||
#include "pinos/dbus/org-pinos.h"
|
#include "pinos/dbus/org-pinos.h"
|
||||||
|
|
||||||
|
#define PINOS_DBUS_SERVICE "org.pinos"
|
||||||
|
#define PINOS_DBUS_OBJECT_PREFIX "/org/pinos"
|
||||||
|
#define PINOS_DBUS_OBJECT_SERVER PINOS_DBUS_OBJECT_PREFIX "/server"
|
||||||
|
#define PINOS_DBUS_OBJECT_CLIENT PINOS_DBUS_OBJECT_PREFIX "/client"
|
||||||
|
#define PINOS_DBUS_OBJECT_NODE PINOS_DBUS_OBJECT_PREFIX "/node"
|
||||||
|
#define PINOS_DBUS_OBJECT_LINK PINOS_DBUS_OBJECT_PREFIX "/link"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PinosCore *core;
|
PinosCore *core;
|
||||||
SpaList link;
|
SpaList link;
|
||||||
|
|
|
||||||
|
|
@ -989,14 +989,7 @@ client_node_dispatch_func (void *object,
|
||||||
SpaProxy *this = &impl->proxy;
|
SpaProxy *this = &impl->proxy;
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case PINOS_MESSAGE_INVALID:
|
default:
|
||||||
case PINOS_MESSAGE_ADD_PORT:
|
|
||||||
case PINOS_MESSAGE_REMOVE_PORT:
|
|
||||||
case PINOS_MESSAGE_SET_FORMAT:
|
|
||||||
case PINOS_MESSAGE_SET_PROPERTY:
|
|
||||||
case PINOS_MESSAGE_NODE_COMMAND:
|
|
||||||
case PINOS_MESSAGE_PORT_COMMAND:
|
|
||||||
case PINOS_MESSAGE_TRANSPORT_UPDATE:
|
|
||||||
spa_log_error (this->log, "proxy %p: got unexpected command %d", this, type);
|
spa_log_error (this->log, "proxy %p: got unexpected command %d", this, type);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@
|
||||||
#include "spa/include/spa/list.h"
|
#include "spa/include/spa/list.h"
|
||||||
#include "spa/include/spa/ringbuffer.h"
|
#include "spa/include/spa/ringbuffer.h"
|
||||||
#include "pinos/client/log.h"
|
#include "pinos/client/log.h"
|
||||||
#include "pinos/client/object.h"
|
|
||||||
#include "pinos/server/main-loop.h"
|
#include "pinos/server/main-loop.h"
|
||||||
|
|
||||||
typedef struct _WorkItem WorkItem;
|
typedef struct _WorkItem WorkItem;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue