This binding is for libcanberra, a sound event library.
Seehttp://0pointer.de/lennart/projects/libcanberra/ for more information.
The bindings should be relatively straightforward, the only thing I'm not
satisfied with is the way of creating a canberra context and proplist: Since
libcanberra has no way to return a newly constructed handle, I had to bind
this as reference. Therefore right now you have to use it like that:
Canberra.Proplist p = null;
Canberra.Proplist.create( &p );
(which I find a bit ugly).
Other than that I think it's good enough for mainline inclusion. Please do, if
you see fit.
Cheers,
:M:
posix
/* canberra.vapi
*
* Copyright (C) 2009 Michael 'Mickey' Lauer <[email protected]>
*
* This library 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.
* This library 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 this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
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 );
}
}
}
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list