alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* alsa-gobject: obsolete abstract class for snd_seq_queue_timer structure
       [not found] <1591852848772607088-webhooks-bot@alsa-project.org>
@ 2020-06-11  5:21 ` GitHub pull_request - opened
  0 siblings, 0 replies; only message in thread
From: GitHub pull_request - opened @ 2020-06-11  5:21 UTC (permalink / raw)
  To: alsa-devel

alsa-project/alsa-gobject pull request #30 was opened from takaswie:

In UAPI of Linux sound subsystem, `snd_seq_queue_timer` structure includes union member.

Current implementation of ALSASeq uses abstract class (ALSASeqQueueTimer) and concrete class (ALSASeqQueueTimerAlsa) to represent variation corresponding to each of union member. However, the design pattern is not convenient for some language bindings.

For example, in Rust language, class-based inheritance is not supported. Gtk-rs project produces mechanism to upcast/downcast between super/sub classes and handles GObject class system. In my opinion, the code to upcast/downcast is a bit complicated to handle derivatives.

This patchset obsoletes usage of abstract class for ALSASeq. The target is ALSASeqQueueTimer. ALSASeqQueueTimerDataAlsa is newly defined to retrieve data for the case of ALSATimer and the inherited ALSASeqQueueTimerAlsa is deleted.

Request URL   : https://github.com/alsa-project/alsa-gobject/pull/30
Patch URL     : https://github.com/alsa-project/alsa-gobject/pull/30.patch
Repository URL: https://github.com/alsa-project/alsa-gobject

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-11  5:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1591852848772607088-webhooks-bot@alsa-project.org>
2020-06-11  5:21 ` alsa-gobject: obsolete abstract class for snd_seq_queue_timer structure GitHub pull_request - opened

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).