From 972818d5883bd4b447787f11ab9f15d7b7c66067 Mon Sep 17 00:00:00 2001 From: Tristan Matthews <tristan.matthews@savoirfairelinux.com> Date: Wed, 29 Jun 2011 12:14:33 -0400 Subject: [PATCH] Revert "* #6295: removed unused clone method" This reverts commit d04bf094628638be579dac768e7343473c800685. --- sflphone-common/src/Codec.h | 7 +++++++ sflphone-common/src/audio/codecs/alaw.cpp | 9 +++++++++ sflphone-common/src/audio/codecs/audiocodec.h | 5 +++++ sflphone-common/src/audio/codecs/celtcodec.cpp | 8 ++++++++ sflphone-common/src/audio/codecs/g722.cpp | 8 ++++++++ sflphone-common/src/audio/codecs/gsmcodec.cpp | 8 ++++++++ sflphone-common/src/audio/codecs/speexcodec_nb.cpp | 8 ++++++++ sflphone-common/src/audio/codecs/speexcodec_ub.cpp | 8 ++++++++ sflphone-common/src/audio/codecs/speexcodec_wb.cpp | 7 +++++++ sflphone-common/src/audio/codecs/ulaw.cpp | 8 ++++++++ 10 files changed, 76 insertions(+) diff --git a/sflphone-common/src/Codec.h b/sflphone-common/src/Codec.h index de1824f84f..b903443fe7 100644 --- a/sflphone-common/src/Codec.h +++ b/sflphone-common/src/Codec.h @@ -32,6 +32,8 @@ #include "MimeParameters.h" // TODO Move to some higher directory +#include <tr1/memory> + #include <cc++/digest.h> /** @@ -59,6 +61,11 @@ class Codec : public virtual MimeParameters */ virtual std::string getDescription() const = 0; + /** + * @return A copy of the current codec. + */ + virtual Codec* clone() const = 0; + /** * Build a unique hash code for identifying the codec uniquely. * Note that if multiple implementations of codec are provided, diff --git a/sflphone-common/src/audio/codecs/alaw.cpp b/sflphone-common/src/audio/codecs/alaw.cpp index e38931c7a0..f6826269eb 100644 --- a/sflphone-common/src/audio/codecs/alaw.cpp +++ b/sflphone-common/src/audio/codecs/alaw.cpp @@ -135,6 +135,15 @@ class Alaw : public sfl::AudioCodec std::string getDescription() const { return "audio/PCMA 8000 (\"alaw\") codec."; } + + /** + * @Override + */ + Alaw* clone() const { + return new Alaw (*this); + } + + }; // the class factories diff --git a/sflphone-common/src/audio/codecs/audiocodec.h b/sflphone-common/src/audio/codecs/audiocodec.h index 1f183b2dfb..20558f0527 100644 --- a/sflphone-common/src/audio/codecs/audiocodec.h +++ b/sflphone-common/src/audio/codecs/audiocodec.h @@ -133,6 +133,11 @@ class AudioCodec : public Codec */ unsigned int getFrameSize() const; + /** + * @Override + */ + virtual AudioCodec* clone() const = 0; + protected: /** Holds SDP-compliant codec name */ std::string _codecName; // what we put inside sdp diff --git a/sflphone-common/src/audio/codecs/celtcodec.cpp b/sflphone-common/src/audio/codecs/celtcodec.cpp index 69d156e505..4ce2b45f20 100644 --- a/sflphone-common/src/audio/codecs/celtcodec.cpp +++ b/sflphone-common/src/audio/codecs/celtcodec.cpp @@ -156,6 +156,14 @@ class Celt : public sfl::AudioCodec return "audio/celt 32000 (\"HD\") codec. Based on libcelt, by Jean-Marc Valin."; } + /** + * @Override + */ + Celt* clone() const { + return new Celt (*this); + } + + private: CELTMode *_mode; diff --git a/sflphone-common/src/audio/codecs/g722.cpp b/sflphone-common/src/audio/codecs/g722.cpp index 3390101482..41ec89a9e1 100644 --- a/sflphone-common/src/audio/codecs/g722.cpp +++ b/sflphone-common/src/audio/codecs/g722.cpp @@ -829,6 +829,14 @@ class G722 : public sfl::AudioCodec return "G722 codec. Most of the code comes from Steve Underwood (<steveu@coppice.org>) for the Asterisk project."; } + /** + * @Override + */ + G722* clone() const { + return new G722 (*this); + } + + private: g722_decode_state_t *decode_s; diff --git a/sflphone-common/src/audio/codecs/gsmcodec.cpp b/sflphone-common/src/audio/codecs/gsmcodec.cpp index 5c43b39cb8..8be02bc61c 100644 --- a/sflphone-common/src/audio/codecs/gsmcodec.cpp +++ b/sflphone-common/src/audio/codecs/gsmcodec.cpp @@ -93,6 +93,14 @@ class Gsm : public sfl::AudioCodec return "GSM codec. Based on libgsm, (C) Jutta Degener and Carsten Bormann, Technische Universitaet Berlin."; } + /** + * @Override + */ + Gsm* clone() const { + return new Gsm (*this); + } + + private: gsm _decode_gsmhandle; gsm _encode_gsmhandle; diff --git a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp index 7c3c076788..e0fcd2a815 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp @@ -121,6 +121,14 @@ class Speex : public sfl::AudioCodec return "audio/speex 8000 (\"narrow band\") codec. Based on libspeex, by Jean-Marc Valin."; } + /** + * @Override + */ + Speex* clone() const { + return new Speex (*this); + } + + private: const SpeexMode* _speexModePtr; SpeexBits _speex_dec_bits; diff --git a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp index ebffda8a71..36a8cd1f42 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp @@ -123,6 +123,14 @@ class Speex : public sfl::AudioCodec return "audio/speex 32000 (\"ultra wide band\") codec. Based on libspeex, by Jean-Marc Valin."; } + /** + * @Override + */ + Speex* clone() const { + return new Speex (*this); + } + + private: const SpeexMode* _speexModePtr; SpeexBits _speex_dec_bits; diff --git a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp index 6e974e3e77..e4fcd41462 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp @@ -122,6 +122,13 @@ class Speex : public sfl::AudioCodec return "audio/speex 16000 (\"wide band\") codec. Based on libspeex, by Jean-Marc Valin."; } + /** + * @Override + */ + Speex* clone() const { + return new Speex (*this); + } + private: const SpeexMode* _speexModePtr; SpeexBits _speex_dec_bits; diff --git a/sflphone-common/src/audio/codecs/ulaw.cpp b/sflphone-common/src/audio/codecs/ulaw.cpp index e3560c0728..56d6571742 100644 --- a/sflphone-common/src/audio/codecs/ulaw.cpp +++ b/sflphone-common/src/audio/codecs/ulaw.cpp @@ -130,6 +130,14 @@ class Ulaw : public sfl::AudioCodec std::string getDescription() const { return "audio/PCMU 8000 (\"ulaw\") codec."; } + + /** + * @Override + */ + Ulaw* clone() const { + return new Ulaw (*this); + } + }; // the class factories -- GitLab