alsa-gobject: obsolete abstract class for snd_seq_queue_timer structure

GitHub pull_request - opened github at alsa-project.org
Thu Jun 11 07:21:03 CEST 2020


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


More information about the Alsa-devel mailing list