All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Zammit <damien.zammit@gmail.com>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>,
	clemens@ladisch.de, tiwai@suse.de, perex@perex.cz
Cc: alsa-devel@alsa-project.org,
	linux1394-devel@lists.sourceforge.net, ffado-devel@lists.sf.net
Subject: Re: [FFADO-devel] [RFC][PATCH 00/13] alsa-tools: libhinawa for control applications of FireWire devices
Date: Fri, 20 Mar 2015 20:28:10 +1100	[thread overview]
Message-ID: <550BE82A.7090901@gmail.com> (raw)
In-Reply-To: <1422185674-16431-1-git-send-email-o-takashi@sakamocchi.jp>

Folks,

Why can't we just use the proven alsa-mixer control system for all this?

It seems like you are reinventing the wheel just to save a little extra
code in the kernel.

Some of the benefits are that for pro-audio devices, you can use alsactl
save and restore to preserve internal sound card configuration between
bootups.  Also things like gnome-mixer just work out of the box.
Timing of when to send the commands is automatically solved, and the
problem of which sound card is which is already solved when multiple
sound cards are used.

Some of the sound cards don't have internal mixer matrices, and so for
these devices only the clock source control would be necessary.

Surely this is not too much of a burden to add to the kernel for the
benefits it provides?

Damien

On 25/01/15 22:34, Takashi Sakamoto wrote:
> This is RFC for a new library into alsa-tools.
> 
> ALSA in Linux 3.16 or later extends a support for FireWire sound devices.
> Currently ALSA drivers supports streaming functionality only, while
> most of these devices require software implementation to control its
> internal DSP. The way to achieve this is to transfer byte sequence to
> the unit and wait byte sequence which the unit transfers if required.
> 
> This library, libhinawa, just support these operations, nothing others. The
> supported types of transactions are:
>  - IEEE 1394 read transaction
>  - IEEE 1394 write transaction
>  - IEEE 1394 lock transaction
>  - IEC 61883-1 FCP transaction
>  - Echo Fireworks transaction (with a help of snd-fireworks kernel driver)
>  - Dice notification (with a help of snd-dice kernel driver)
> 
> To help new developers, this library supports GObject Introspection for
> language bindings. The main logic of applications can be written with
> preferred languages such as Python, Ruby, Perl and so on. In the end of
> this patchset, some Python scripts with Gtk+, Qt4 and Qt5 are committed as
> samples.
> 
> This is my first development with GNU Autotools, GLib/GObject and GObject
> Introspection. Furthermore, I'm a beginner of FireWire subsystem programming.
> I'm happy to receive your comments, especially:
>  - the way to write Linux version dependency in configure.ac
>  - the way of libtool versioning
>  - the value of poll timeout in fw_unit/snd_unit
>  - the value of thread condition timeout in fw_fcp/snd_dice/snd_efw
>  - improvements of 'unit_query' object
>  - any programming mistakes (threading and so on...)
> 
> Regards
> 
> Takashi Sakamoto (13):
>   libhinawa: add build definitions
>   libhinawa: add hinawa context
>   libhinawa: support GTK-Doc to generate references
>   libhinawa: add 'fw_unit' object as a listener for FireWire unit
>   libhinawa: support GObject Introspection for language bindings
>   libhinawa: add 'fw_resp' object as a responder for FireWire
>     transaction
>   libhinawa: add 'fw_req' object as requester for FireWire transaction
>   libhinawa: add 'fw_fcp' object as a helper of FCP transaction
>   libhinawa: add 'snd_unit' object as a listener for ALSA FireWire
>     devices
>   libhinawa: add 'snd_dice' object as a helper for Dice notification
>   libhinawa: add 'snd_efw' object as a helper for EFW transaction
>   libhinawa: add 'unit_query' as a query for ALSA FireWire devices
>   libhinawa: add sample scripts
> 
>  Makefile                                 |   2 +-
>  libhinawa/AUTHORS                        |   1 +
>  libhinawa/COPYING                        | 504 ++++++++++++++++++++++++++++
>  libhinawa/ChangeLog                      |   5 +
>  libhinawa/Makefile.am                    |   6 +
>  libhinawa/NEWS                           |   0
>  libhinawa/README                         |  30 ++
>  libhinawa/autogen.sh                     |  11 +
>  libhinawa/configure.ac                   |  68 ++++
>  libhinawa/doc/Makefile.am                |   2 +
>  libhinawa/doc/reference/Makefile.am      |  46 +++
>  libhinawa/doc/reference/hinawa-docs.sgml |  47 +++
>  libhinawa/doc/reference/version.xml.in   |   1 +
>  libhinawa/samples/gtk3.py                | 190 +++++++++++
>  libhinawa/samples/qt4.py                 | 206 ++++++++++++
>  libhinawa/samples/qt5.py                 | 192 +++++++++++
>  libhinawa/samples/run.sh                 |  15 +
>  libhinawa/src/Makefile.am                |  97 ++++++
>  libhinawa/src/backport.h                 |  41 +++
>  libhinawa/src/fw_fcp.c                   | 282 ++++++++++++++++
>  libhinawa/src/fw_fcp.h                   |  58 ++++
>  libhinawa/src/fw_req.c                   | 265 +++++++++++++++
>  libhinawa/src/fw_req.h                   |  56 ++++
>  libhinawa/src/fw_resp.c                  | 232 +++++++++++++
>  libhinawa/src/fw_resp.h                  |  51 +++
>  libhinawa/src/fw_unit.c                  | 343 +++++++++++++++++++
>  libhinawa/src/fw_unit.h                  |  52 +++
>  libhinawa/src/hinawa_context.c           |  60 ++++
>  libhinawa/src/hinawa_context.h           |  10 +
>  libhinawa/src/internal.h                 |  31 ++
>  libhinawa/src/snd_dice.c                 | 195 +++++++++++
>  libhinawa/src/snd_dice.h                 |  53 +++
>  libhinawa/src/snd_efw.c                  | 315 ++++++++++++++++++
>  libhinawa/src/snd_efw.h                  |  54 +++
>  libhinawa/src/snd_unit.c                 | 548 +++++++++++++++++++++++++++++++
>  libhinawa/src/snd_unit.h                 |  69 ++++
>  libhinawa/src/unit_query.c               | 116 +++++++
>  libhinawa/src/unit_query.h               |  48 +++
>  38 files changed, 4301 insertions(+), 1 deletion(-)
>  create mode 100644 libhinawa/AUTHORS
>  create mode 100644 libhinawa/COPYING
>  create mode 100644 libhinawa/ChangeLog
>  create mode 100644 libhinawa/Makefile.am
>  create mode 100644 libhinawa/NEWS
>  create mode 100644 libhinawa/README
>  create mode 100755 libhinawa/autogen.sh
>  create mode 100644 libhinawa/configure.ac
>  create mode 100644 libhinawa/doc/Makefile.am
>  create mode 100644 libhinawa/doc/reference/Makefile.am
>  create mode 100644 libhinawa/doc/reference/hinawa-docs.sgml
>  create mode 100644 libhinawa/doc/reference/version.xml.in
>  create mode 100755 libhinawa/samples/gtk3.py
>  create mode 100755 libhinawa/samples/qt4.py
>  create mode 100755 libhinawa/samples/qt5.py
>  create mode 100755 libhinawa/samples/run.sh
>  create mode 100644 libhinawa/src/Makefile.am
>  create mode 100644 libhinawa/src/backport.h
>  create mode 100644 libhinawa/src/fw_fcp.c
>  create mode 100644 libhinawa/src/fw_fcp.h
>  create mode 100644 libhinawa/src/fw_req.c
>  create mode 100644 libhinawa/src/fw_req.h
>  create mode 100644 libhinawa/src/fw_resp.c
>  create mode 100644 libhinawa/src/fw_resp.h
>  create mode 100644 libhinawa/src/fw_unit.c
>  create mode 100644 libhinawa/src/fw_unit.h
>  create mode 100644 libhinawa/src/hinawa_context.c
>  create mode 100644 libhinawa/src/hinawa_context.h
>  create mode 100644 libhinawa/src/internal.h
>  create mode 100644 libhinawa/src/snd_dice.c
>  create mode 100644 libhinawa/src/snd_dice.h
>  create mode 100644 libhinawa/src/snd_efw.c
>  create mode 100644 libhinawa/src/snd_efw.h
>  create mode 100644 libhinawa/src/snd_unit.c
>  create mode 100644 libhinawa/src/snd_unit.h
>  create mode 100644 libhinawa/src/unit_query.c
>  create mode 100644 libhinawa/src/unit_query.h
> 

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/

  parent reply	other threads:[~2015-03-20  9:28 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-25 11:34 [RFC][PATCH 00/13] alsa-tools: libhinawa for control applications of FireWire devices Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 01/13] libhinawa: add build definitions Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 02/13] libhinawa: add hinawa context Takashi Sakamoto
2015-01-27 15:35   ` Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 03/13] libhinawa: support GTK-Doc to generate references Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 04/13] libhinawa: add 'fw_unit' object as a listener for FireWire unit Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 05/13] libhinawa: support GObject Introspection for language bindings Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 06/13] libhinawa: add 'fw_resp' object as a responder for FireWire transaction Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 07/13] libhinawa: add 'fw_req' object as requester " Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 08/13] libhinawa: add 'fw_fcp' object as a helper of FCP transaction Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 09/13] libhinawa: add 'snd_unit' object as a listener for ALSA FireWire devices Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 10/13] libhinawa: add 'snd_dice' object as a helper for Dice notification Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 11/13] libhinawa: add 'snd_efw' object as a helper for EFW transaction Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 12/13] libhinawa: add 'unit_query' as a query for ALSA FireWire devices Takashi Sakamoto
2015-01-25 11:34 ` [PATCH 13/13] libhinawa: add sample scripts Takashi Sakamoto
2015-01-25 12:14   ` [alsa-devel] " Alexander E. Patrakov
2015-01-27 15:09     ` Takashi Sakamoto
2015-01-27 15:16       ` Alexander E. Patrakov
2015-01-26 23:05 ` [FFADO-devel] [RFC][PATCH 00/13] alsa-tools: libhinawa for control applications of FireWire devices Jonathan Woithe
2015-03-20  9:28 ` Damien Zammit [this message]
2015-03-20 10:09   ` [alsa-devel] " Clemens Ladisch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=550BE82A.7090901@gmail.com \
    --to=damien.zammit@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=ffado-devel@lists.sf.net \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=o-takashi@sakamocchi.jp \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.