ts3plugin_sys/
plugin_definitions.rs

1#![allow(dead_code)]
2
3//! This file contains the definitions of plugin_definitions.h
4
5use std::os::raw::*;
6
7pub const MENU_BUFSZ:   usize = 128;
8pub const HOTKEY_BUFSZ: usize = 128;
9
10/// Return values for offersConfigure
11#[repr(C)]
12#[derive(Debug, PartialEq, Eq, Clone, Copy)]
13pub enum ConfigureOffer {
14	/// Plugin does not implement ts3plugin_configure
15	No = 0,
16	/// Plugin does implement ts3plugin_configure and requests to run this function in an own thread
17	NewThread,
18	/// Plugin does implement ts3plugin_configure and requests to run this function in the Qt GUI thread
19	QtThread,
20}
21
22#[repr(C)]
23#[derive(Debug, PartialEq, Eq, Clone, Copy)]
24pub enum MessageTarget {
25	Server = 0,
26	Channel,
27}
28
29#[repr(C)]
30#[derive(Debug, PartialEq, Eq, Clone, Copy)]
31pub enum ItemType {
32	Server = 0,
33	Channel,
34	Client,
35}
36
37#[repr(C)]
38#[derive(Debug, PartialEq, Eq, Clone, Copy)]
39pub enum MenuType {
40	Global = 0,
41	Channel,
42	Client,
43}
44
45#[repr(C)]
46pub struct MenuItem {
47	pub type_name: MenuType,
48	pub id:        c_uint,
49	pub text:      [c_char; MENU_BUFSZ],
50	pub icon:      [c_char; MENU_BUFSZ],
51}
52
53#[repr(C)]
54pub struct Hotkey {
55	pub keyword:     [c_char; HOTKEY_BUFSZ],
56	pub description: [c_char; HOTKEY_BUFSZ],
57}
58
59#[repr(C)]
60pub struct BookmarkItem {
61	pub name:        *mut c_char,
62	pub is_folder:   u8,
63	pub reserved:    [u8; 3],
64	/// Is either "char *uuid" or "BookmarkList *folder"
65	pub uuid_folder: *mut c_char,
66}
67
68impl BookmarkItem {
69	fn get_uuid(&self) -> *mut c_char {
70		self.uuid_folder
71	}
72
73	fn get_folder(&self) -> *mut BookmarkList {
74		self.uuid_folder as *mut BookmarkList
75	}
76
77	fn set_uuid(&mut self, val: *mut c_char) {
78		self.uuid_folder = val;
79	}
80
81	fn set_folder(&mut self, val: *mut BookmarkList) {
82		self.uuid_folder = val as *mut c_char;
83	}
84}
85
86#[repr(C)]
87pub struct BookmarkList {
88	pub itemcount: c_int,
89	/// Should be 0 but compiler complains (the C compiler, not the rust compiler)
90	pub items:     [BookmarkItem; 1],
91}
92
93#[repr(C)]
94#[derive(Debug, PartialEq, Eq, Clone, Copy)]
95pub enum GuiProfile {
96	SoundCapture = 0,
97	SoundPlayback,
98	Hotkey,
99	Soundpack,
100	Identity,
101}
102
103#[repr(C)]
104#[derive(Debug, PartialEq, Eq, Clone, Copy)]
105pub enum ConnectTab {
106	New = 0,
107	Current,
108	NewIfCurrentConnected,
109}