~ubuntu-branches/ubuntu/jaunty/ekiga/jaunty-updates

« back to all changes in this revision

Viewing changes to lib/engine/protocol/codec-description.h

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2009-03-17 15:14:12 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20090317151412-no6uq0wl8zz2hsw3
Tags: 3.2.0-0ubuntu1
* New upstream release (LP: #341367)
  - Better NAT support in case of Cone NAT
  - Uniformise detection of libnotify; fix compilation with mingw
  - Fix "URL completion combobox shows identical completions"
  - Fix "Assistant loosing values when going backward"
  - Fix GmConf settings when compiled with another package name
  - Fix unregistration of accounts
  - Fix build with --enable-kde
  - Fixed possible crash when retrieving presence information
  - New translations: crh, or
  - Updated translations: as, bg, bn_IN, da, de, el, eu, gl, gu, hi, hu,
    ja, kn, ko, ku, lt, ml, mr, or, pt, ro, ru, ta, te, tr
  - New help translation: en_GB
  - Updated help translation: fr
  - Better NAT support in case of Cone NAT
  - There is now only one H.263 plugin implementing both H.263 and H.263+
  - Allow several ALSA devices to have the same name
  - Added support for the G.722 audio codec: G.722 is a 16 kHz wideband
    audio codec advertised as HD Voice by the famous Polycom. It is a
    great boost in quality and interoperability
  - Added support for the CELT ultral-low delay audio codec: CELT delivers
    high quality audio at 32 kHz or 48 kHz, allowing to transmit music in
    high quality, with low delay and low bitrate
  - Added support for SIP dialog-info notifications: they allow displaying
    notifications of incoming calls in the roster. With software like
    kamailio or Asterisk, it allows being informed of incoming calls
    reaching your colleagues
  - Largely improved LDAP support: the OpenLDAP guys contributed several
    patches to provide state-of-the-art LDAP support in the Ekiga address
    book. The new code even supports authentication
  - Killed the gconf_test_age test, Ekiga can now finally work with
    badly installed GConf schemas
  - Better handling of multiple network interfaces with dynamic addition
    and removal
  - Added settings migration from Ekiga 2.0.x.
  - Other various fixes, cleanups, removal of deprecated symbols etc.
  - New translations: crh, or
  - New help translation: en_GB, eu
  - Updated many translations and help
  - Experimental features:
    * Significant improvements in IPv6 support
    * Gstreamer audio and video capture support near to be finished...
* debian/patches/migrate_2.0_settings.patch:
  - Removed, migration is now upstream
* debian/patches/00_news.patch
  - Removed
* debian/patches/ubuntu_lpi.patch:
  - Modified to work with 3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/*
 
3
 * Ekiga -- A VoIP and Video-Conferencing application
 
4
 * Copyright (C) 2000-2009 Damien Sandras <dsandras@seconix.com>
 
5
 
 
6
 * This program is free software; you can  redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License as published by
 
8
 * the Free Software Foundation; either version 2 of the License, or (at
 
9
 * your option) any later version. This program is distributed in the hope
 
10
 * that it will be useful, but WITHOUT ANY WARRANTY; without even the
 
11
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
12
 * See the GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License along
 
15
 * with this program; if not, write to the Free Software Foundation, Inc.,
 
16
 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
17
 *
 
18
 * Ekiga is licensed under the GPL license and as a special exception, you
 
19
 * have permission to link or otherwise combine this program with the
 
20
 * programs OPAL, OpenH323 and PWLIB, and distribute the combination, without
 
21
 * applying the requirements of the GNU GPL to the OPAL, OpenH323 and PWLIB
 
22
 * programs, as long as you do follow the requirements of the GNU GPL for all
 
23
 * the rest of the software thus combined.
 
24
 */
 
25
 
 
26
 
 
27
/*
 
28
 *                         codec-description.h  -  description
 
29
 *                         ------------------------------------------
 
30
 *   begin                : written in January 2008 by Damien Sandras 
 
31
 *   copyright            : (c) 2008 by Damien Sandras
 
32
 *   description          : declaration of the interface of a codec description.
 
33
 *
 
34
 */
 
35
 
 
36
#ifndef __CODEC_DESCRIPTION_H__
 
37
#define __CODEC_DESCRIPTION_H__
 
38
 
 
39
#include <iostream>
 
40
#include <list>
 
41
 
 
42
#include <glib.h>
 
43
 
 
44
namespace Ekiga
 
45
{
 
46
 
 
47
/**
 
48
 * @addtogroup calls
 
49
 * @{
 
50
 */
 
51
 
 
52
  /** This class holds the representation of a codec. 
 
53
   * That representation is different from the codec itself, but can be used
 
54
   * at several places in the engine.
 
55
   */
 
56
  class CodecDescription 
 
57
    {
 
58
  public:
 
59
 
 
60
      /** Create an empty codec description
 
61
      */
 
62
      CodecDescription ();
 
63
 
 
64
      /** Create a codec description based on the parameters
 
65
       * @param name is the codec name as defined in the RFC
 
66
       * @param rate is the clock rate 
 
67
       * @param audio is true if it reprensents an audio codec
 
68
       * @param protocols is a comma separated list of protocols supported 
 
69
       *        by the codec
 
70
       * @param active is true if the codec is active
 
71
       */
 
72
      CodecDescription (std::string name,
 
73
                        unsigned rate,
 
74
                        bool audio,
 
75
                        std::string protocols,
 
76
                        bool active);
 
77
 
 
78
      /** Create a codec description from a string
 
79
       * @param codec is a string representing the codec description.
 
80
       *        All fields are separated by a *
 
81
       */
 
82
      CodecDescription (std::string codec);
 
83
 
 
84
      /** Return the codec description under the form of a string.
 
85
       * @return the std::string representing the string description.
 
86
       */
 
87
      std::string str ();
 
88
 
 
89
 
 
90
      /** name is the codec name as defined in the RFC
 
91
      */
 
92
      std::string name;
 
93
 
 
94
      /** rate is the clock rate 
 
95
      */
 
96
      unsigned rate;
 
97
 
 
98
      /** active is true if the codec is active
 
99
      */
 
100
      bool active;
 
101
 
 
102
      /** audio is true if it reprensents an audio codec
 
103
      */
 
104
      bool audio;
 
105
 
 
106
      /** protocols is a list of protocols supported by the codec
 
107
      */
 
108
      std::list<std::string> protocols;
 
109
 
 
110
 
 
111
      /** Return true if both CodecDescription are identical, false otherwise
 
112
       * @return true if both CodecDescription are identical, false otherwise
 
113
       */
 
114
      bool operator== (const CodecDescription & c) const;
 
115
 
 
116
      /** Return true if both CodecDescription are different, false otherwise
 
117
       * @return true if both CodecDescription are different, false otherwise
 
118
       */
 
119
      bool operator!= (const CodecDescription & c) const;
 
120
    };
 
121
 
 
122
 
 
123
  class CodecList : public std::list<CodecDescription>
 
124
    {
 
125
  public :
 
126
 
 
127
      /** Constructor that creates an empty CodecList
 
128
       */
 
129
      CodecList () {};
 
130
 
 
131
      /** Constructor that creates a CodecList from a GSList whose elements
 
132
       * are CodecDescription objects formatted as a string.
 
133
       */
 
134
      CodecList (GSList *);
 
135
 
 
136
 
 
137
      /** Append the given CodecList at the end of the current CodecList.
 
138
       * @param list is the CodecList to append to the current one
 
139
       */
 
140
      void append (CodecList & list);
 
141
 
 
142
 
 
143
      /** Return the list of audio codecs descriptions in the current CodecList 
 
144
       * @return the list of audio CodecDescription
 
145
       */
 
146
      CodecList get_audio_list ();
 
147
 
 
148
 
 
149
      /** Return the list of video codecs descriptions in the current CodecList 
 
150
       * @return the list of video CodecDescription
 
151
       */
 
152
      CodecList get_video_list ();
 
153
 
 
154
 
 
155
      /** Return the list of codecs descriptions under their str form
 
156
       * @return the list of CodecDescription
 
157
       */
 
158
      GSList *gslist ();
 
159
 
 
160
 
 
161
      /** Return true if both CodecList are identical, false otherwise
 
162
       * @return true if both CodecList are identical, false otherwise
 
163
       */
 
164
      bool operator== (const CodecList & c) const;
 
165
 
 
166
 
 
167
      /** Return true if both CodecList are different, false otherwise
 
168
       * @return true if both CodecList are different, false otherwise
 
169
       */
 
170
      bool operator!= (const CodecList & c) const;
 
171
    };
 
172
 
 
173
/**
 
174
 * @}
 
175
 */
 
176
 
 
177
}
 
178
 
 
179
/** Output the CodecList
 
180
 */
 
181
std::ostream& operator<< (std::ostream & os, const Ekiga::CodecList & c);
 
182
#endif