Merge branch 'stable' into 'main'
[ladish.git] / daemon / virtualizer.h
blob48dd132da28fbfc243da42b64b76c40b84b675ec
1 /* -*- Mode: C ; c-basic-offset: 2 -*- */
2 /*
3 * LADI Session Handler (ladish)
5 * Copyright (C) 2009, 2010, 2011 Nedko Arnaudov <nedko@arnaudov.name>
7 **************************************************************************
8 * This file contains interface to graph dispatcher object
9 **************************************************************************
11 * LADI Session Handler is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
16 * LADI Session Handler is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with LADI Session Handler. If not, see <http://www.gnu.org/licenses/>
23 * or write to the Free Software Foundation, Inc.,
24 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
27 #ifndef JACK_DISPATCH_H__C7566B66_081D_4D00_A702_7C18F7CC0735__INCLUDED
28 #define JACK_DISPATCH_H__C7566B66_081D_4D00_A702_7C18F7CC0735__INCLUDED
30 #include "common.h"
31 #include "../proxies/graph_proxy.h"
32 #include "graph.h"
33 #include "app_supervisor.h"
35 typedef struct ladish_virtualizer { int unused; } * ladish_virtualizer_handle;
37 bool
38 ladish_virtualizer_create(
39 graph_proxy_handle jack_graph_proxy,
40 ladish_graph_handle jack_graph,
41 ladish_virtualizer_handle * handle_ptr);
43 void
44 ladish_virtualizer_set_graph_connection_handlers(
45 ladish_virtualizer_handle handle,
46 ladish_graph_handle graph);
48 unsigned int
49 ladish_virtualizer_get_our_clients_count(
50 ladish_virtualizer_handle handle);
52 bool
53 ladish_virtualizer_is_hidden_app(
54 ladish_graph_handle jack_graph,
55 const uuid_t app_uuid,
56 const char * app_name);
58 void
59 ladish_virtualizer_remove_app(
60 ladish_graph_handle jack_graph,
61 const uuid_t app_uuid,
62 const char * app_name);
64 void
65 ladish_virtualizer_rename_app(
66 void * vgraph_context,
67 const uuid_t uuid,
68 const char * old_name,
69 const char * new_app_name);
71 bool
72 ladish_virtualizer_is_system_client(
73 uuid_t uuid);
75 bool
76 ladish_virtualizer_is_a2j_client(
77 ladish_client_handle jclient);
79 void
80 ladish_virtualizer_destroy(
81 ladish_virtualizer_handle handle);
83 /* create new client and move capture ports of the supplied client the the new client */
84 bool
85 ladish_virtualizer_split_client(
86 ladish_graph_handle vgraph,
87 uint64_t client_id);
89 /* move ports of client2 to client1 and remove client2 */
90 bool
91 ladish_virtualizer_join_clients(
92 ladish_graph_handle vgraph,
93 uint64_t client1_id,
94 uint64_t client2_id);
96 ladish_app_handle
97 ladish_find_app_by_pid(
98 pid_t pid,
99 ladish_graph_handle * graph_ptr);
101 #endif /* #ifndef JACK_DISPATCH_H__C7566B66_081D_4D00_A702_7C18F7CC0735__INCLUDED */