type @extern Ecore_Audio_Vio: __undefined_type; /* FIXME: Had function pointer members. */ type @extern eo_key_data_free_func: __undefined_type; /* FIXME: Function pointers not allowed. */ enum Ecore_Audio_Format { auto, [[Automatically detect the format (for inputs)]] raw, [[RAW samples (float)]] wav, [[WAV format]] ogg, [[OGG]] flac, [[FLAC, the Free Lossless Audio Codec]] mp3, [[MP3 (not supported)]] last [[Sentinel value, do not use]] } class Ecore_Audio (Eo.Base) { legacy_prefix: null; eo_prefix: ecore_audio_obj; data: Ecore_Audio_Object; methods { @property name { set { [[Set the name of the object @since 1.8 ]] } get { [[Get the name of the object @since 1.8 ]] } values { name: const(char)*; } } @property paused { set { [[Set the pause state of the object @since 1.8 ]] } get { [[Get the pause state of the object @since 1.8 ]] } values { paused: bool; [[true if object is paused, false if not]] } } @property volume { set { [[Set the volume of the object @since 1.8 ]] } get { [[Get the volume of the object @since 1.8 ]] } values { volume: double; [[the volume]] } } @property source { set { [[Set the source of the object What sources are supported depends on the actual object. For example, the libsndfile class accepts WAV, OGG, FLAC files as source. @since 1.8 ]] return: bool; [[true if the source was set correctly (i.e. the file was opened), EINA_FALSE otherwise ]] } get { [[Get the source of the object @since 1.8 ]] } values { source: const(char)*; [[the source to set to (i.e. file, URL, device)]] } } @property format { set { [[Set the format of the object What formats are supported depends on the actual object. Default is ECORE_AUDIO_FORMAT_AUTO @since 1.8 ]] return: bool; [[true if the format was supported, false otherwise]] } get { [[Get the format of the object After setting the source if the format was ECORE_AUDIO_FORMAT_AUTO this function will now return the actual format. @since 1.8 ]] } values { format: Ecore_Audio_Format; [[the format of the object]] } } vio_set { [[Set the virtual IO functions @since 1.8 ]] params { vio: Ecore_Audio_Vio *; [[the \@ref Ecore_Audio_Vio struct with the function callbacks ]] data: void *; [[user data to pass to the VIO functions]] free_func: eo_key_data_free_func; [[this function takes care to clean up $data when he VIO is destroyed. NULL means do nothing. ]] } } } implements { Eo.Base.constructor; @virtual .source.get; @virtual .source.set; @virtual .format.get; @virtual .format.set; @virtual .vio_set; } }