1 /* Simple Plugin API 2 * 3 * Copyright © 2018 Wim Taymans 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the next 13 * paragraph) shall be included in all copies or substantial portions of the 14 * Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 */ 24 25 #ifndef SPA_COMMAND_NODE_H 26 #define SPA_COMMAND_NODE_H 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 /** 33 * \addtogroup spa_node 34 * \{ 35 */ 36 37 #include <spa/pod/command.h> 38 39 /* object id of SPA_TYPE_COMMAND_Node */ 40 enum spa_node_command { 41 SPA_NODE_COMMAND_Suspend, /**< suspend a node, this removes all configured 42 * formats and closes any devices */ 43 SPA_NODE_COMMAND_Pause, /**< pause a node. this makes it stop emitting 44 * scheduling events */ 45 SPA_NODE_COMMAND_Start, /**< start a node, this makes it start emitting 46 * scheduling events */ 47 SPA_NODE_COMMAND_Enable, 48 SPA_NODE_COMMAND_Disable, 49 SPA_NODE_COMMAND_Flush, 50 SPA_NODE_COMMAND_Drain, 51 SPA_NODE_COMMAND_Marker, 52 SPA_NODE_COMMAND_ParamBegin, /**< begin a set of parameter enumerations or 53 * configuration that require the device to 54 * remain opened, like query formats and then 55 * set a format */ 56 SPA_NODE_COMMAND_ParamEnd, /**< end a transaction */ 57 SPA_NODE_COMMAND_RequestProcess,/**< Sent to a driver when some other node emitted 58 * the RequestProcess event. */ 59 }; 60 61 #define SPA_NODE_COMMAND_ID(cmd) SPA_COMMAND_ID(cmd, SPA_TYPE_COMMAND_Node) 62 #define SPA_NODE_COMMAND_INIT(id) SPA_COMMAND_INIT(SPA_TYPE_COMMAND_Node, id) 63 64 65 /** 66 * \} 67 */ 68 69 #ifdef __cplusplus 70 } /* extern "C" */ 71 #endif 72 73 #endif /* SPA_COMMAND_NODE_H */ 74