189 lines
5.0 KiB
C
189 lines
5.0 KiB
C
/* -*- Mode: C ; c-basic-offset: 4 -*- */
|
|
/*
|
|
Copyright (C) 2007,2008,2011 Nedko Arnaudov
|
|
Copyright (C) 2007-2008 Juuso Alasuutari
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License.
|
|
|
|
This program 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 General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
*/
|
|
|
|
#ifndef CONTROLLER_INTERNAL_H__04D54D51_3D79_49A2_A1DA_F8587E9E7F42__INCLUDED
|
|
#define CONTROLLER_INTERNAL_H__04D54D51_3D79_49A2_A1DA_F8587E9E7F42__INCLUDED
|
|
|
|
#include <stdbool.h>
|
|
#include "jslist.h"
|
|
#include "jack/control.h"
|
|
#include "jack/jack.h"
|
|
#include "jackdbus.h"
|
|
#include "list.h"
|
|
#include "params.h"
|
|
|
|
struct jack_controller_slave_driver
|
|
{
|
|
struct list_head siblings;
|
|
char * name;
|
|
jackctl_driver_t * handle;
|
|
bool loaded;
|
|
};
|
|
|
|
struct jack_controller
|
|
{
|
|
jackctl_server_t *server;
|
|
jack_params_handle params;
|
|
|
|
void *patchbay_context;
|
|
|
|
bool started;
|
|
jack_client_t *client;
|
|
unsigned int xruns;
|
|
|
|
struct list_head slave_drivers;
|
|
bool slave_drivers_set;
|
|
struct jack_parameter slave_drivers_vparam;
|
|
union jackctl_parameter_value slave_drivers_vparam_value;
|
|
|
|
struct jack_dbus_object_descriptor dbus_descriptor;
|
|
};
|
|
|
|
#define DEFAULT_DRIVER "dummy"
|
|
|
|
#define JACK_CONF_HEADER_TEXT \
|
|
"JACK settings, as persisted by D-Bus object.\n" \
|
|
"You probably don't want to edit this because\n" \
|
|
"it will be overwritten next time jackdbus saves.\n"
|
|
|
|
bool
|
|
jack_controller_start_server(
|
|
struct jack_controller *controller_ptr,
|
|
void *dbus_call_context_ptr);
|
|
|
|
bool
|
|
jack_controller_stop_server(
|
|
struct jack_controller *controller_ptr,
|
|
void *dbus_call_context_ptr);
|
|
|
|
bool
|
|
jack_controller_switch_master(
|
|
struct jack_controller *controller_ptr,
|
|
void *dbus_call_context_ptr);
|
|
|
|
bool
|
|
jack_controller_add_slave_driver(
|
|
struct jack_controller *controller_ptr,
|
|
const char * driver_name);
|
|
|
|
bool
|
|
jack_controller_remove_slave_driver(
|
|
struct jack_controller *controller_ptr,
|
|
const char * driver_name);
|
|
|
|
bool
|
|
jack_controller_select_driver(
|
|
struct jack_controller *controller_ptr,
|
|
const char * driver_name);
|
|
|
|
bool
|
|
jack_controller_load_internal(
|
|
struct jack_controller *controller_ptr,
|
|
const char * internal_name);
|
|
|
|
bool
|
|
jack_controller_unload_internal(
|
|
struct jack_controller *controller_ptr,
|
|
const char * internal_name);
|
|
|
|
void
|
|
jack_controller_deserialize_parameter_value(
|
|
struct jack_controller *controller_ptr,
|
|
const char * const * address,
|
|
const char * value);
|
|
|
|
void
|
|
jack_controller_serialize_parameter_value(
|
|
const struct jack_parameter * param_ptr,
|
|
char * value_buffer);
|
|
|
|
bool
|
|
jack_controller_patchbay_init(
|
|
struct jack_controller *controller_ptr);
|
|
|
|
void
|
|
jack_controller_patchbay_uninit(
|
|
struct jack_controller *controller_ptr);
|
|
|
|
void *
|
|
jack_controller_patchbay_client_appeared_callback(
|
|
void * server_context,
|
|
uint64_t client_id,
|
|
const char *client_name);
|
|
|
|
void
|
|
jack_controller_patchbay_client_disappeared_callback(
|
|
void *server_context,
|
|
uint64_t client_id,
|
|
void *client_context);
|
|
|
|
void *
|
|
jack_controller_patchbay_port_appeared_callback(
|
|
void *server_context,
|
|
uint64_t client_id,
|
|
void *client_context,
|
|
uint64_t port_id,
|
|
const char *port_name,
|
|
uint32_t port_flags,
|
|
uint32_t port_type);
|
|
|
|
void
|
|
jack_controller_patchbay_port_disappeared_callback(
|
|
void *server_context,
|
|
uint64_t client_id,
|
|
void *client_context,
|
|
uint64_t port_id,
|
|
void *port_context);
|
|
|
|
void *
|
|
jack_controller_patchbay_ports_connected_callback(
|
|
void *server_context,
|
|
uint64_t client1_id,
|
|
void *client1_context,
|
|
uint64_t port1_id,
|
|
void *port1_context,
|
|
uint64_t client2_id,
|
|
void *client2_context,
|
|
uint64_t port2_id,
|
|
void *port2_context,
|
|
uint64_t connection_id);
|
|
|
|
void
|
|
jack_controller_patchbay_ports_disconnected_callback(
|
|
void *server_context,
|
|
uint64_t client1_id,
|
|
void *client1_context,
|
|
uint64_t port1_id,
|
|
void *port1_context,
|
|
uint64_t client2_id,
|
|
void *client2_context,
|
|
uint64_t port2_id,
|
|
void *port2_context,
|
|
uint64_t connection_id,
|
|
void *connection_context);
|
|
|
|
extern struct jack_dbus_interface_descriptor g_jack_controller_iface_introspectable;
|
|
extern struct jack_dbus_interface_descriptor g_jack_controller_iface_control;
|
|
extern struct jack_dbus_interface_descriptor g_jack_controller_iface_configure;
|
|
extern struct jack_dbus_interface_descriptor g_jack_controller_iface_patchbay;
|
|
extern struct jack_dbus_interface_descriptor g_jack_controller_iface_transport;
|
|
|
|
#endif /* #ifndef CONTROLLER_INTERNAL_H__04D54D51_3D79_49A2_A1DA_F8587E9E7F42__INCLUDED */
|