Show
Ignore:
Timestamp:
04/02/07 12:35:17 (16 years ago)
Author:
pieterpalmers
Message:

* name change from FreeBoB to FFADO
* replaced tabs by 4 spaces
* got rid of end-of-line spaces
* made all license and copyrights conform

library becomes LGPL, apps become GPL
explicitly state LGPL v2.1 and GPL v2 (don't like v3 draft)

copyrights are 2005-2007 Daniel & Pieter
except for the MotU stuff (C) Jonathan, Pieter

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/doc/adding_devices.dox

    r249 r445  
    1 /* 
    2  * This is the main page of the FreeBoB reference manual, built using 
    3  * doxygen. 
    4  */ 
    5  
    61/** 
    7 @page adding_devices Adding support for new devices to LibFreeBoB 
     2@page adding_devices Adding support for new devices to libffado 
    83 
    94@author Pieter Palmers <pieterpalmers@users.sourceforge.net> 
     
    2116 Layer 2 is implemented by subclassing the StreamProcessor class in src/libstreaming/ 
    2217  
    23  Basic operation of libfreebob is: 
     18 Basic operation of libffado is: 
    2419 - Create a DeviceManager that iterates over all nodes connected to the 1394 bus.  
    2520   For every node present, it tries the probeFunctions (probeBeBoB, probeMotu, ...). 
     
    5449         the start/stop mechanism differ. 
    5550  
    56  In order to add support for a device to freebob, two things should be implemented: 
     51 In order to add support for a device to libffado, two things should be implemented: 
    5752  - an IAvDevice descendant that takes care of the device discovery & configuration 
    5853  - a StreamProcessor descendant that takes care of the device specific stream translation 
     
    6560@section streamingbaseclasses Streaming base class hierarchy and operation 
    6661 
    67 This section explains the implementation details of the streaming part of LibFreeBoB.  
     62This section explains the implementation details of the streaming part of libffado.  
    6863 
    6964The following figure shows the base class diagram, and the derrived classed that implement 
     
    8984- an IsoHandlerManager instance 
    9085 
    91 Related classes: FreebobStreaming::StreamProcessorManager 
     86Related classes: Streaming::StreamProcessorManager 
    9287 
    9388@subsection isoside The ISO side: 1394 isochronous traffic management 
     
    10398\note This abstraction is completely device independent, it only provides a mechanism to transmit or receive a certain isochronous stream. It could as well be used for video streams... 
    10499 
    105 Related classes: FreebobStreaming::IsoStream, FreebobStreaming::IsoHandlerManager, FreebobStreaming::IsoHandler 
     100Related classes: Streaming::IsoStream, Streaming::IsoHandlerManager, Streaming::IsoHandler 
    106101 
    107102@subsection audioapiside The Audio API side: port management 
     
    137132The idea is that we present a collection of ports to the Audio API side which from which it can read or to which it can write. 
    138133 
    139 Related classes: FreebobStreaming::Port, FreebobStreaming::PortManager 
     134Related classes: Streaming::Port, Streaming::PortManager 
    140135 
    141136@subsection connectingisoandaudio Connecting the ISO side with the Audio API side 
     
    161156A StreamProcessor also has the init(), prepare() and reset() calls, which are still to be documented (see later). 
    162157 
    163 Related classes: FreebobStreaming::StreamProcessor, FreebobStreaming::ReceiveStreamProcessor, FreebobStreaming::TransmitStreamProcessor, FreebobStreaming::PortManager 
     158Related classes: Streaming::StreamProcessor, Streaming::ReceiveStreamProcessor, Streaming::TransmitStreamProcessor, Streaming::PortManager 
    164159 
    165160@subsection mappingports Mapping Ports to IsoStreams 
     
    167162 
    168163@subsection puttingtogether Putting it all together 
     164 
     165@note this is outdated 
     166 
    169167The framework is completed by introducing the StreamProcessorManager. As indicated before, this class implements a 'collection of StreamProcessors' and an IsoHandlerManager.  
    170168 
    171169First of all, the StreamProcessorManager is a collection of StreamProcessors, hence it implements the  registerStreamProcessor and unregisterStreamProcessor methods. It maintains the list of StreamProcessors under it's control. When StreamProcessors are (un)registered, they are automatically (un)registered to the IsoHandlerManager too, creating IsoHandlers to handle them. Remember that StreamProcessor is a descendant of IsoStream, and can therefore be registered to an IsoHandlerManager. This results in the fact that the ISO stream the StreamProcessor is supposed to handle, will be attached to an IsoHandler. 
    172170 
    173 Furthermore StreamProcessorManager is a child of the FreebobRunnable interface, and can therefore be used as the worker class for a FreebobThread. A complicated sentence to say that the StreamProcessorManager will start up a thread that calls its Execute() function, which in its turn calls the IsoHandlerManager Exectute() method (hence iterating the IsoHandlers managed by the IsoHandlerManager). This thread also performs the synchronisation as described in the next paragraph. 
     171Furthermore StreamProcessorManager is a child of the Runnable interface, and can therefore be used as the worker class for a Thread. A complicated sentence to say that the StreamProcessorManager will start up a thread that calls its Execute() function, which in its turn calls the IsoHandlerManager Exectute() method (hence iterating the IsoHandlers managed by the IsoHandlerManager). This thread also performs the synchronisation as described in the next paragraph. 
    174172 
    175173The third function of the StreamProcessorManager is the synchronisation between the ISO side and the Audio API side. To implement this, the class provides a wait() method that waits on a synchronisation primitive. This primitive is signalled by the thread that iterates the IsoHandlerManager. This thread will signal the primitive when all StreamProcessors indicate that they have one period ready. 
     
    181179\note A blocking-read/nonblocking write (and the other way around) version of access to PacketBuffered Ports is planned. 
    182180 
    183 Related classes: FreebobStreaming::StreamProcessorManager, FreebobStreaming::IsoHandlerManager, FreebobStreaming::Port 
     181Related classes: Streaming::StreamProcessorManager, Streaming::IsoHandlerManager, Streaming::Port 
    184182 
    185183@subsection callingorder Some notes on when which method is called 
  • trunk/libffado/doc/amdtpstreamprocessor.dox

    r249 r445  
    1 /* 
    2  * This is the main page of the FreeBoB reference manual, built using 
    3  * doxygen. 
    4  */ 
    5  
    61/** 
    72@page amdtpdescription The AMDTP StreamProcessor 
  • trunk/libffado/doc/mainpage.dox

    r249 r445  
    11/* 
    2  * This is the main page of the FreeBoB reference manual, built using 
     2 * This is the main page of the FFADO reference manual, built using 
    33 * doxygen. 
    44 */ 
    55 
    66/** 
    7 @mainpage FreeBoB - Firewire (pro-)audio for Linux 
     7@mainpage FFADO - Free Firewire (pro-)Audio Drivers for Linux 
    88 
    99@author Pieter Palmers <pieterpalmers@users.sourceforge.net> 
     
    1111@section intro Introduction 
    1212 
    13 FreeBoB is intended as an intermediate layer between the Linux1394 kernel/userspace layer, and the various audio API's (ALSA, jack, ...) present. 
     13FFADO is intended as an intermediate layer between the Linux1394 kernel/userspace layer, and the various audio API's (ALSA, jack, ...) present. 
    1414 
    1515\note this is a SVN version, therefore it is highly volatile. Certain parts of the documentation can be outdated. This documentation is also auto-generated, and it can occur that unused classes and interfaces appear in the documentation. This pollution will be cleaned up as we go along. 
    1616 
    17 @see <http://freebob.sourceforge.net> 
     17@see <http://ffado.sourceforge.net> 
    1818 
    1919@section library Client side library 
    2020 
    21 FreeBoB presents an interface that can be used to implement backends for various audio 
     21FFADO presents an interface that can be used to implement backends for various audio 
    2222API's. Currently the best support is for the JACK backend. It is also intended to implement configuration applications like mixer controls etc.. 
    2323 
    24 The library API is split in two parts: 
    25         - @ref freebob.h "<libfreebob/freebob.h>" is the discovery & configuration interface 
    26         - @ref freebob_streaming.h "<libfreebob/freebob_streaming.h>" is the streaming interface 
    27  
     24The library API's external C interface is defined in: 
     25        - @ref ffado.h "<libffado/ffado.h>"  
    2826 
    2927@section devicesupport Adding support for unsupported devices 
    3028 
    31 Initial support is/was for BeBoB devices only, however the framework  
    32 is usable for all firewire audio devices. 
     29Initial support by FreeBoB was for BeBoB devices only, however the FFADO framework  
     30is usable for all FireWire audio devices. 
    3331 
    3432Take a look at the @ref adding_devices page for a detailed description. 
  • trunk/libffado/doc/reference.doxygen.in

    r250 r445  
    1818# by quotes) that should identify the project. 
    1919 
    20 PROJECT_NAME           = LIBFREEBOB 
     20PROJECT_NAME           = LIBFFADO 
    2121 
    2222# The PROJECT_NUMBER tag can be used to enter a project or revision number.  
     
    366366                         @top_srcdir@/src/ \ 
    367367                         @top_srcdir@/src/debugmodule \ 
     368                         @top_srcdir@/src/libavc \ 
     369                         @top_srcdir@/src/libieee1394 \ 
     370                         @top_srcdir@/src/libosc \ 
    368371                         @top_srcdir@/src/libstreaming \ 
    369372                         @top_srcdir@/src/libutil \ 
    370                          @top_srcdir@/src/libfreebobavc \ 
    371                          @top_srcdir@/libfreebob/ 
     373                         @top_srcdir@/src/bebob \ 
     374                         @top_srcdir@/src/bounce \ 
     375                         @top_srcdir@/src/dice \ 
     376                         @top_srcdir@/src/maudio \ 
     377                         @top_srcdir@/src/metrichalo \ 
     378                         @top_srcdir@/src/motu \ 
     379                         @top_srcdir@/src/rme \ 
     380                         @top_srcdir@/libffado/ 
     381 
    372382 
    373383# If the value of the INPUT tag contains directories, you can use the  
  • trunk/libffado/doc/streaming.xmi

    r403 r445  
    8585        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="13397" isRoot="false" isAbstract="false" name="PortVectorIterator" elementReference="13396" /> 
    8686        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="13401" isRoot="false" isAbstract="false" name="Port*" elementReference="12717" /> 
    87         <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="14009" isRoot="false" isAbstract="false" name="FreebobRunnableInterface*" elementReference="14008" /> 
     87        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="14009" isRoot="false" isAbstract="false" name="FFADORunnableInterface*" elementReference="14008" /> 
    8888        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="14530" isRoot="false" isAbstract="false" name="unsigned char*" elementReference="14529" /> 
    8989        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="14540" isRoot="false" isAbstract="false" name="unsigned int*" elementReference="12734" /> 
     
    9696        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="14665" isRoot="false" isAbstract="false" name="IsoHandlerManager*" elementReference="14659" /> 
    9797        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="15179" isRoot="false" isAbstract="false" name="quadlet_t*" elementReference="15178" /> 
    98         <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="15190" isRoot="false" isAbstract="false" name="freebob_ringbuffer_t*" elementReference="15166" /> 
     98        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="15190" isRoot="false" isAbstract="false" name="ffado_ringbuffer_t*" elementReference="15166" /> 
    9999        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="15236" isRoot="false" isAbstract="false" name="IsoHandler*" elementReference="15194" /> 
    100100        <UML:DataType stereotype="12706" isSpecification="false" isLeaf="false" visibility="public" namespace="88018" xmi.id="15278" isRoot="false" isAbstract="false" name="PacketBuffer*" elementReference="15167" /> 
     
    109109      </UML:Package> 
    110110      <UML:Class comment="Id$ *//* 
    111   FreeBob Streaming API 
    112   FreeBob = Firewire (pro-)audio for linux 
     111  FFADO Streaming API 
     112  FFADO = Firewire (pro-)audio for linux 
    113113 
    114   http://freebob.sf.net 
     114  http://ffado.sf.net 
    115115 
    116116  Copyright (C) 2005,2006 Pieter Palmers &lt;pieterpalmers@users.sourceforge.net> 
     
    958958      </UML:Class> 
    959959      <UML:Class comment="Id$ *//* 
    960   FreeBob Streaming API 
    961   FreeBob = Firewire (pro-)audio for linux 
     960  FFADO Streaming API 
     961  FFADO = Firewire (pro-)audio for linux 
    962962 
    963   http://freebob.sf.net 
     963  http://ffado.sf.net 
    964964 
    965965  Copyright (C) 2005,2006 Pieter Palmers &lt;pieterpalmers@users.sourceforge.net> 
     
    10341034      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13000" isRoot="false" isAbstract="false" name="enum E_Formats" /> 
    10351035      <UML:Class comment="Id$ *//* 
    1036   FreeBob Streaming API 
    1037   FreeBob = Firewire (pro-)audio for linux 
     1036  FFADO Streaming API 
     1037  FFADO = Firewire (pro-)audio for linux 
    10381038 
    1039   http://freebob.sf.net 
     1039  http://ffado.sf.net 
    10401040 
    10411041  Copyright (C) 2005,2006 Pieter Palmers &lt;pieterpalmers@users.sourceforge.net> 
     
    15311531      <UML:Class stereotype="13989" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13991" isRoot="false" isAbstract="false" name="SInt32" /> 
    15321532      <UML:Class stereotype="13989" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13992" isRoot="false" isAbstract="false" name="UInt64" /> 
    1533       <UML:Class comment="Modifications for Freebob (C) 2006, Pieter Palmers 
     1533      <UML:Class comment="Modifications for FFADO (C) 2006, Pieter Palmers 
    15341534Copied from the jackd/jackdmp sources 
    15351535function names changed in order to avoid naming problems when using this in 
     
    15491549Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
    15501550//*! 
    1551 \brief The POSIX thread base class." isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13993" isRoot="false" isAbstract="false" name="FreebobPosixThread" > 
     1551\brief The POSIX thread base class." isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13993" isRoot="false" isAbstract="false" name="FFADOPosixThread" > 
    15521552       <UML:GeneralizableElement.generalization> 
    15531553        <UML:Generalization xmi.idref="13995" /> 
     
    16601660         </UML:BehavioralFeature.parameter> 
    16611661        </UML:Operation> 
    1662         <UML:Operation stereotype="12714" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14007" isRoot="false" isAbstract="false" isQuery="false" name="FreebobPosixThread" > 
     1662        <UML:Operation stereotype="12714" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14007" isRoot="false" isAbstract="false" isQuery="false" name="FFADOPosixThread" > 
    16631663         <UML:BehavioralFeature.parameter> 
    16641664          <UML:Parameter isSpecification="false" visibility="private" xmi.id="14010" value="" type="14009" name="runnable" /> 
     
    16681668         </UML:BehavioralFeature.parameter> 
    16691669        </UML:Operation> 
    1670         <UML:Operation stereotype="12714" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14014" isRoot="false" isAbstract="false" isQuery="false" name="FreebobPosixThread" > 
     1670        <UML:Operation stereotype="12714" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14014" isRoot="false" isAbstract="false" isQuery="false" name="FFADOPosixThread" > 
    16711671         <UML:BehavioralFeature.parameter> 
    16721672          <UML:Parameter isSpecification="false" visibility="private" xmi.id="14015" value="" type="14009" name="runnable" /> 
    16731673         </UML:BehavioralFeature.parameter> 
    16741674        </UML:Operation> 
    1675         <UML:Operation stereotype="12714" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14016" isRoot="false" isAbstract="false" isQuery="false" name="FreebobPosixThread" > 
     1675        <UML:Operation stereotype="12714" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14016" isRoot="false" isAbstract="false" isQuery="false" name="FFADOPosixThread" > 
    16761676         <UML:BehavioralFeature.parameter> 
    16771677          <UML:Parameter isSpecification="false" visibility="private" xmi.id="14017" value="" type="14009" name="runnable" /> 
     
    16791679         </UML:BehavioralFeature.parameter> 
    16801680        </UML:Operation> 
    1681         <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="14019" isRoot="false" isAbstract="false" isQuery="false" name="~ FreebobPosixThread" /> 
     1681        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="14019" isRoot="false" isAbstract="false" isQuery="false" name="~ FFADOPosixThread" /> 
    16821682        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="14020" isRoot="false" isAbstract="false" isQuery="false" name="Start" > 
    16831683         <UML:BehavioralFeature.parameter> 
     
    17181718       </UML:Classifier.feature> 
    17191719      </UML:Class> 
    1720       <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13994" isRoot="false" isAbstract="false" name="FreebobThread" /> 
     1720      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13994" isRoot="false" isAbstract="false" name="FFADOThread" /> 
    17211721      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="13998" isRoot="false" isAbstract="false" name="pthread_t" /> 
    17221722      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="14002" isRoot="false" isAbstract="false" name="volatile bool" /> 
    1723       <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="14008" isRoot="false" isAbstract="false" name="FreebobRunnableInterface" /> 
     1723      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="14008" isRoot="false" isAbstract="false" name="FFADORunnableInterface" /> 
    17241724      <UML:Class comment="Id$ *//* 
    1725   FreeBob Streaming API 
    1726   FreeBob = Firewire (pro-)audio for linux 
     1725  FFADO Streaming API 
     1726  FFADO = Firewire (pro-)audio for linux 
    17271727 
    1728   http://freebob.sf.net 
     1728  http://ffado.sf.net 
    17291729 
    17301730  Copyright (C) 2005,2006 Pieter Palmers &lt;pieterpalmers@users.sourceforge.net> 
     
    25542554      </UML:Class> 
    25552555      <UML:Class comment="Id$ *//* 
    2556   FreeBob Streaming API 
    2557   FreeBob = Firewire (pro-)audio for linux 
     2556  FFADO Streaming API 
     2557  FFADO = Firewire (pro-)audio for linux 
    25582558 
    2559   http://freebob.sf.net 
     2559  http://ffado.sf.net 
    25602560 
    25612561  Copyright (C) 2005,2006 Pieter Palmers &lt;pieterpalmers@users.sourceforge.net> 
     
    35563556         </UML:BehavioralFeature.parameter> 
    35573557        </UML:Operation> 
    3558         <UML:Operation comment="// FreebobRunnableInterface interface// note that this is called in we while(running) loop" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="14649" isRoot="false" isAbstract="false" isQuery="false" name="Execute" > 
     3558        <UML:Operation comment="// FFADORunnableInterface interface// note that this is called in we while(running) loop" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="14649" isRoot="false" isAbstract="false" isQuery="false" name="Execute" > 
    35593559         <UML:BehavioralFeature.parameter> 
    35603560          <UML:Parameter kind="return" xmi.id="LlXy8i6aXj2o" type="12708" /> 
     
    36863686        </UML:Operation> 
    36873687        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="14668" isRoot="false" isAbstract="false" isQuery="false" name="~ StreamRunner" /> 
    3688         <UML:Operation comment="// FreebobRunnableInterface interface// note that this is called in we while(running) loop" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14669" isRoot="false" isAbstract="false" isQuery="false" name="Execute" > 
     3688        <UML:Operation comment="// FFADORunnableInterface interface// note that this is called in we while(running) loop" isSpecification="false" isLeaf="false" visibility="public" xmi.id="14669" isRoot="false" isAbstract="false" isQuery="false" name="Execute" > 
    36893689         <UML:BehavioralFeature.parameter> 
    36903690          <UML:Parameter kind="return" xmi.id="9wZVdbzyKUvQ" type="12708" /> 
     
    36983698       </UML:Classifier.feature> 
    36993699      </UML:Class> 
    3700       <UML:Class stereotype="13989" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="15165" isRoot="false" isAbstract="false" name="freebob_ringbuffer_data_t" /> 
    3701       <UML:Class stereotype="13989" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="15166" isRoot="false" isAbstract="false" name="freebob_ringbuffer_t" /> 
     3700      <UML:Class stereotype="13989" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="15165" isRoot="false" isAbstract="false" name="ffado_ringbuffer_data_t" /> 
     3701      <UML:Class stereotype="13989" isSpecification="false" isLeaf="false" visibility="public" namespace="1" xmi.id="15166" isRoot="false" isAbstract="false" name="ffado_ringbuffer_t" /> 
    37023702      <UML:Class comment="Id$ *//* 
    3703   FreeBob Streaming API 
    3704   FreeBob = Firewire (pro-)audio for linux 
     3703  FFADO Streaming API 
     3704  FFADO = Firewire (pro-)audio for linux 
    37053705 
    3706   http://freebob.sf.net 
     3706  http://ffado.sf.net 
    37073707 
    37083708  Copyright (C) 2005,2006 Pieter Palmers &lt;pieterpalmers@users.sourceforge.net>