~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to sflphone-common/src/audio/algorithm.h

  • Committer: Package Import Robot
  • Author(s): Francois Marier
  • Date: 2011-11-25 13:24:12 UTC
  • mfrom: (4.1.10 sid)
  • Revision ID: package-import@ubuntu.com-20111125132412-dc4qvhyosk74cd42
Tags: 1.0.1-4
Don't assume that arch:all packages will get built (closes: #649726)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 *  Copyright (C) 2004, 2005, 2006, 2009, 2008, 2009, 2010, 2011 Savoir-Faire Linux Inc.
3
 
 *  Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
4
 
 *
5
 
 *  This program is free software; you can redistribute it and/or modify
6
 
 *  it under the terms of the GNU General Public License as published by
7
 
 *  the Free Software Foundation; either version 3 of the License, or
8
 
 *  (at your option) any later version.
9
 
 *
10
 
 *  This program is distributed in the hope that it will be useful,
11
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 *  GNU General Public License for more details.
14
 
 *
15
 
 *  You should have received a copy of the GNU General Public License
16
 
 *  along with this program; if not, write to the Free Software
17
 
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
 
 *
19
 
 *  Additional permission under GNU GPL version 3 section 7:
20
 
 *
21
 
 *  If you modify this program, or any covered work, by linking or
22
 
 *  combining it with the OpenSSL project's OpenSSL library (or a
23
 
 *  modified version of that library), containing parts covered by the
24
 
 *  terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
25
 
 *  grants you additional permission to convey the resulting work.
26
 
 *  Corresponding Source for a non-source form of such a combination
27
 
 *  shall include the source code for the parts of OpenSSL used as well
28
 
 *  as that of the covered work.
29
 
 */
30
 
 
31
 
#ifndef ALGORITHM_H
32
 
#define ALGORITHM_H
33
 
 
34
 
#include "global.h"
35
 
 
36
 
/**
37
 
 * \class Algorithm
38
 
 *
39
 
 * Abstract interface used to implement audio processing algorithm
40
 
 */
41
 
class Algorithm
42
 
{
43
 
 
44
 
    public:
45
 
 
46
 
        virtual void reset (void) = 0;
47
 
 
48
 
        /**
49
 
         * Put data to be processed
50
 
         */
51
 
        virtual void putData (SFLDataFormat *inputData, int nbBytes) = 0;
52
 
 
53
 
        /**
54
 
         *
55
 
         */
56
 
        virtual int getData (SFLDataFormat *outputData) = 0;
57
 
 
58
 
        /**
59
 
         * Class implementing this interface must define this function
60
 
         * for audio processing that require synchronization between spkrdata and
61
 
         */
62
 
        virtual void process (SFLDataFormat *inputData, int nbBytes) = 0;
63
 
 
64
 
        /**
65
 
         * Class implementing this interface must define this function
66
 
         * for audio processing that require synchronization between spkrdata and
67
 
         */
68
 
        virtual int process (SFLDataFormat *inputData, SFLDataFormat *outputData, int nbBytes) = 0;
69
 
 
70
 
        /**
71
 
         * Class implementing this interface must define this function
72
 
         * for audio processing that require synchronization between spkr and mic
73
 
         * \param micData
74
 
         * \param spkrData
75
 
         * \param outputData
76
 
         */
77
 
        virtual void process (SFLDataFormat *micData, SFLDataFormat *spkrData, SFLDataFormat *outputData, int nbBytes) = 0;
78
 
 
79
 
};
80
 
 
81
 
#endif