summaryrefslogtreecommitdiffstats
path: root/canberra.vapi
blob: 761c24fcb5e2be478e7970c3b427ed64ca6d23f4 (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
130
131
132
133
134
135
136
137
138
/***
  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/>.
***/

using Posix;

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

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

    //
    // errors
    //
    [CCode (cname = "CA_SUCCESS")]
    public 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( Error code );

    //
    // callback
    //
    public delegate void FinishCallback( Context context, uint32 id, Error code );

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

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

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

        public static Error create( Context* context );
        public Error destroy();
        public Error set_driver( string driver );
        public Error change_device( string device );
        public Error open();
        [CCode (sentinel = "")]
        public Error change_props( ... );
        public Error change_props_full( Proplist p );
        [CCode (instance_pos = 0)]
        public Error play_full( uint32 id, Proplist p, FinishCallback cb );
        [CCode (sentinel = "")]
        public Error play( uint32 id, ... );
        public Error cache_full( Proplist p );
        [CCode (sentinel = "")]
        public Error cache( ... );
        public Error cancel( uint32 id );
    }
}