From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: 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: [RFC][PATCH 00/13] alsa-tools: libhinawa for control applications of FireWire devices
Date: Sun, 25 Jan 2015 20:34:21 +0900 [thread overview]
Message-ID: <1422185674-16431-1-git-send-email-o-takashi@sakamocchi.jp> (raw)
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
next reply other threads:[~2015-01-25 11:34 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-25 11:34 Takashi Sakamoto [this message]
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
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=1422185674-16431-1-git-send-email-o-takashi@sakamocchi.jp \
--to=o-takashi@sakamocchi.jp \
--cc=alsa-devel@alsa-project.org \
--cc=clemens@ladisch.de \
--cc=ffado-devel@lists.sf.net \
--cc=linux1394-devel@lists.sourceforge.net \
--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.