All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 00/13] alsa-tools: libhinawa for control applications of FireWire devices
@ 2015-01-25 11:34 Takashi Sakamoto
  2015-01-25 11:34 ` [PATCH 01/13] libhinawa: add build definitions Takashi Sakamoto
                   ` (14 more replies)
  0 siblings, 15 replies; 21+ messages in thread
From: Takashi Sakamoto @ 2015-01-25 11:34 UTC (permalink / raw)
  To: clemens, tiwai, perex; +Cc: alsa-devel, linux1394-devel, ffado-devel

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

-- 
2.1.0


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2015-03-20 10:09 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2015-03-20 10:09   ` [alsa-devel] " Clemens Ladisch

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.