]> git.alsa-project.org Git - alsa-gobject.git/tag
v0.3.0
object 394164c0162ae9e4cb828f37556db349bdff816a
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Thu, 30 Jun 2022 03:08:24 +0000 (12:08 +0900)
This major release includes batch of changes with loss of backward compatibility.

1. Add entry headers

For application of all of including libraraies, entry headers are added.

2. Migration to gi-docgen for documentation

The gi-docgen is used instead of gtk-doc to generate documentation.

3. Use utility macro to define GObject stuffs

The utility macro available since GObject v2.44 is used.

4. Enhancement of test scripts

Test scripts are refined so that interfaces and boxed structures are tested as well.

5. Loss of backward compatibility between v0.2/0.3 releases

5.1. Following to GNOME convention for throw function

In GNOME convention, the throw function to report error at GError argument should return gboolean
value to report the overall operation finished successfully or not. At v0.3 release, the most of
public API are rewritten according to it.

5.2. Using GObject Interface

GObject Interface is utilized for some cases to express structure with union.

- ``ALSACtl.ElemInfoCommon`` and ``ALSACtl.ElemInfoSingleArray`` for ``struct snd_ctl_elem_info``
- ``ALSASeq.QueueTimerCommon`` for ``struct snd_seq_queue_timer``

Therefore some GObject-derived objects implements the interfaces.

- ``ALSACtl.ElemInfoIec60958``
- ``ALSACtl.ElemInfoBoolean``
- ``ALSACtl.ElemInfoBytes``
- ``ALSACtl.ElemInfoInteger``
- ``ALSACtl.ElemInfoInteger64``
- ``ALSACtl.ElemInfoEnumerated``
- ``ALSASeq.QueueTimerAlsa``

Some boxed structures are obsoleted and removed.

- ``ALSACtl.ElemInfo``
- ``ALSACtl.QueueTimer``
- ``ALSACtl.QueueTimerDataAlsa``

GObject Interface is utlized to define common feature of hwdep device as well.
``ALSAHwdep.DeviceCommon`` interface is added for the purpose.

5.3. Event expression for ALSA Sequencer

``ALSASeq.Event`` boxed structure is newly added to each event, and ``ALSASeq.EventCntr`` is
simplified to include deserializer only. ``ALSASeq.EventError`` domain is newly added to express
event handling problem.

5.4. Name consistency in time stamp expression

The word ``tstamp`` is renamed to ``real time`` in the most of functions, enumerations, object
names, and methods for name consistency.

- ``ALSATimer.TstampEvent`` boxed structure is renamed to ``ALSATimer.RealTimeEvent``
- ``ALSATimer.EventType`` enumeration is renamed to ``ALSATimer.RealTimeEventType``
- ``ALSATimer.EventDataType`` enumeration is renamed to ``ALSATimer.EventType``
- ``ALSATimer.InstanceStatus.get_tstamp()`` method is renamed to ``ALSATimer.InstanceStatus.get_time()``
- ``ALSATimer.get_tstamp_source()`` function is renamed to ``ALSATimer.get_real_time_clock_id()``

In time stamp, the counterpart of ``real time`` is ``tick``. ``ALSATimer.TickEvent`` boxed structure
is renamed to ``ALSATimer.TickTimeEvent``. ``ALSATimer.Event``, ``ALSATimer.EventDataTick`` and
``ALSATimer.EventDataTstamp`` are obsoleted and removed.  ``ALSATimer.UserInstance::handle-event``
is obsoleted as well. The alternatives are available to retrieve corresponding event.

- ``ALSATimer.UserInstance::handle-tick-time-event``
- ``ALSATimer.UserInstance::handle-real-time-event``

``ALSASeq.Tstamp`` is obsoleted and removed as well. The accessor methods to it are rewritten
to retrieve either tick time or real time.

- ``ALSASeq.Event.get_tick_time()``
- ``ALSASeq.Event.get_real_time()``
- ``ALSASeq.Event.get_tick_time_data()``
- ``ALSASeq.Event.get_real_time_data()``
- ``ALSASeq.EventDataQueue.get_tick_time_param()``
- ``ALSASeq.EventDataQueue.get_real_time_param()``
- ``ALSASeq.RemoveFilter.new_with_tick_time()``
- ``ALSASeq.RemoveFilter.new_with_real_time()``

The word ``tstamp`` still remains in the enumerations and properties to affects both ``tick``
and ``real time``.

- ``ALSASeq.EventTstampMode``
- ``ALSASeq.Event.get_tstamp_mode()``
- ``ALSASeq.PortInfo:tstamp-mode``
- ``ALSASeq.PortInfo:tstamp-overwrite``
- ``ALSASeq.SusbscribeData:has-tstamp``
- ``ALSASeq.SusbscribeData:tstamp-mode``

Some properties are added to ``ALSASeq.SubscribeData`` to obsolete ``ALSASeq.PortSubscribeFlag``.

- ``ALSASeq.SubscribeData:is-exclusive``
- ``ALSASeq.SubscribeData:has-tstamp``
- ``ALSASeq.SubscribeData:tstamp-mode``
- ``ALSASeq.SubscribeData:queue-id``

5.5. Rewrite setter method in ALSACtl.ElemValue

Below methods are rewritten to retrieve the pointer in internal storage instead of copying to given
buffer as fixed-sized array:

- ``ALSACtl.ElemValue.get_bool``
- ``ALSACtl.ElemValue.get_int``
- ``ALSACtl.ElemValue.get_enum``
- ``ALSACtl.ElemValue.get_bytes``
- ``ALSACtl.ElemValue.get_iec60958_user_data``
- ``ALSACtl.ElemValue.get_iec60958_channel_status``
- ``ALSACtl.ElemValue.get_int64``

5.6. Rewrite ALSASeq.RemoveFilter

ALSASeq.RemoveFilter is largely written so that it's GObject-derived object instead of boxed
structure for flexible configuration of filter condition.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEJdpblpnxMtt0vSJwtaWGx9Zv00EFAmK9E+AACgkQtaWGx9Zv
00EZiw/+PvAt+qOgoXE9LLHnrAcVWy5X2WG9rbxL4f+foKa4/V402YwERxXuuf+1
Aozqoe1rMHqc7Pv1FgtkmqH5BumW7LZo8ULU/Y69qacIMMuSggTV4Bllc96trsxr
urIzLLafJdGMB5aPW6t5YqceADHF/UgTAJqeilvhSzCumBfpI+SKY4yNpkh2L3m7
qODcvARpg8hLqUwhJUY99og4tOI04v9qgDtV9q0B8YV2m2pPGhcuAx5GzC/vGbp3
hY9XCrB5OZup3yaaos96+iCcsZpunYR6CI6QjSTv4STy7HiM3wG4l4HDdsXXM8m3
v83D/iuE0HK1IQJp0PiVBtc+qF6xZcSmzw+UIJCCCPdftk27eRUWyRZ35q5zkD3r
iM0OHL9aBxsUcKC1TpR/9a60nqm/Jmh76+R3rMpNPkrGc3tgvM6CZ/44klGXBKBF
SPA+9LSe6CeZ6+o1ctHqgf6P3MjrRSOPdFpFNt2X7e+LYOuyNokdUvjSaoHei1TG
hq3BDlEDqJjDZyx3NcqeLfPR7OQjnBd8AqYxKi6SLGqr79jilb4nXnkhd2Za3Amh
cbCEI96qRu+m8gKX4LohqH3BBGI2ttIQ8d0PCxBSqfYEpfl+nc/eVZbpfiiQdunE
WQfitq5d+bb8X/gRzqWWI6veDoUMCEiHs1zbPoelPNho3Is7d0g=
=qEmb
-----END PGP SIGNATURE-----