summaryrefslogtreecommitdiffstats
path: root/canberra.vapi
blob: 27e13081ffc25eff1e8e9fa9b19d51ee48467019 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/***
  This file is part of libcanberra.

  Copyright (C) 2009 Michael 'Mickey' Lauer <mlauer vanille-media de>

  libcanberra is free software; you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation, either version 2.1 of the
  License, or (at your option) any later version.

  libcanberra 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
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with libcanberra. If not, see
  <http://www.gnu.org/licenses/>.
***/

[CCode (cprefix = "CA_", lower_case_cprefix = "ca_", cheader_filename = "canberra.h")]
namespace Canberra {

        public static const int MAJOR;
        public static const int MINOR;

        [CCode (cname="CA_CHECK_VERSION")]
        public static bool CHECK_VERSION(int major, int minor);

        public static const string PROP_MEDIA_NAME;
        public static const string PROP_MEDIA_TITLE;
        public static const string PROP_MEDIA_ARTIST;
        public static const string PROP_MEDIA_LANGUAGE;
        public static const string PROP_MEDIA_FILENAME;
        public static const string PROP_MEDIA_ICON;
        public static const string PROP_MEDIA_ICON_NAME;
        public static const string PROP_MEDIA_ROLE;
        public static const string PROP_EVENT_ID;
        public static const string PROP_EVENT_DESCRIPTION;
        public static const string PROP_EVENT_MOUSE_X;
        public static const string PROP_EVENT_MOUSE_Y;
        public static const string PROP_EVENT_MOUSE_HPOS;
        public static const string PROP_EVENT_MOUSE_VPOS;
        public static const string PROP_EVENT_MOUSE_BUTTON;
        public static const string PROP_WINDOW_NAME;
        public static const string PROP_WINDOW_ID;
        public static const string PROP_WINDOW_ICON;
        public static const string PROP_WINDOW_ICON_NAME;
        public static const string PROP_WINDOW_X11_DISPLAY;
        public static const string PROP_WINDOW_X11_SCREEN;
        public static const string PROP_WINDOW_X11_MONITOR;
        public static const string PROP_WINDOW_X11_XID;
        public static const string PROP_APPLICATION_NAME;
        public static const string PROP_APPLICATION_ID;
        public static const string PROP_APPLICATION_VERSION;
        public static const string PROP_APPLICATION_ICON;
        public static const string PROP_APPLICATION_ICON_NAME;
        public static const string PROP_APPLICATION_LANGUAGE;
        public static const string PROP_APPLICATION_PROCESS_ID;
        public static const string PROP_APPLICATION_PROCESS_BINARY;
        public static const string PROP_APPLICATION_PROCESS_USER;
        public static const string PROP_APPLICATION_PROCESS_HOST;
        public static const string PROP_CANBERRA_CACHE_CONTROL;
        public static const string PROP_CANBERRA_VOLUME;
        public static const string PROP_CANBERRA_XDG_THEME_NAME;
        public static const string PROP_CANBERRA_XDG_THEME_OUTPUT_PROFILE;
        public static const string PROP_CANBERRA_ENABLE;

        [CCode (cname = "CA_SUCCESS")]
        public static const int SUCCESS;

        [CCode (cname = "int", cprefix = "CA_ERROR_")]
        public enum Error {
                NOTSUPPORTED,
                INVALID,
                STATE,
                OOM,
                NODRIVER,
                SYSTEM,
                CORRUPT,
                TOOBIG,
                NOTFOUND,
                DESTROYED,
                CANCELED,
                NOTAVAILABLE,
                ACCESS,
                IO,
                INTERNAL,
                DISABLED,
                FORKED
        }

        public unowned string? strerror(int code);

        public delegate void FinishCallback(Context c, uint32 id, int code);

        [Compact]
        [CCode (cname = "ca_proplist", free_function = "")]
        public class Proplist {

                public static int create(out Proplist p);
                public int destroy();
                public int sets(string key, string value);
                [PrintfFormat]
                public int setf(string key, string format, ...);
                public int set(string key, void* data, size_t nbytes);
        }

        [Compact]
        [CCode (cname = "ca_context", free_function = "")]
        public class Context {


                public static int create(out Context context);
                public int destroy();
                public int set_driver(string? driver = null);
                public int change_device(string? device = null);
                public int open();
                public int change_props(...);
                public int change_props_full(Proplist p);
                [CCode (instance_pos = 0)]
                public int play_full(uint32 id, Proplist p, FinishCallback? cb = null);
                public int play(uint32 id, ...);
                public int cache_full(Proplist p);
                public int cache(...);
                public int cancel(uint32 id);
                public int playing(uint32 id, out bool playing);
        }
}