---
name: "ost_AudioTone"
section: "3"
platform: "linux"
package: "libccaudio2-doc"
version: "1.0.0-2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/ost_AudioTone"
---

# ost\_AudioTone(3)

The AudioTone class is used to create a frame of audio encoded single or dualtones.

## NAME

ost::AudioTone - The **AudioTone** class is used to create a frame of audio encoded single or dualtones.

## SYNOPSIS

`#include <audio2.h>`

Inherits **ost::Audio**.

Inherited by **ost::DTMFTones**, **ost::MFTones**, and **ost::TelTone**.

### Public Member Functions

**Rate** **getRate** (void)\
 *Get the sample encoding rate being used for the tone generator.*  size\_t **getSamples** (void)\
 *Get the frame size for the number of audio samples generated.*  bool **isSilent** (void)\
 *Test if the tone generator is currently set to silence.*  virtual **Linear** **getFrame** (void)\
 *Iterate the tone frame, and extract linear samples in native frame.*  unsigned **getFrames** (**Linear** buffer, unsigned number)\
 *This is used to copy one or more pages of framed audio quickly to an external buffer.*  virtual bool **isComplete** (void)\
 *See if at end of tone.*  **AudioTone** (**timeout\_t** duration=20, **Rate** **rate**=rate8khz)\
 *Construct a silent tone generator of specific frame size.*  **AudioTone** (unsigned f1, unsigned f2, **Level** l1, **Level** l2, **timeout\_t** duration=20, **Rate** sample=rate8khz)\
 *Construct a dual tone frame generator.*  **AudioTone** (unsigned freq, **Level** level, **timeout\_t** duration=20, **Rate** sample=rate8khz)\
 *Construct a single tone frame generator.*  virtual **~AudioTone** ()\

### Protected Member Functions

void **silence** (void)\
 *Set the frame to silent.*  void **reset** (void)\
 *Reset the tone generator completely.*  void **cleanup** (void)\
 *Cleanup for virtual destructors to use.*  void **single** (unsigned freq, **Level** level)\
 *Set frame to generate single tone.*  void **dual** (unsigned f1, unsigned f2, **Level** l1, **Level** l2)\
 *Set frame to generate dual tone.*

### Protected Attributes

**Rate** **rate**\
 unsigned **samples**\
 **Linear** **frame**\
 double **df1**\
 double **df2**\
 double **p1**\
 double **p2**\
 **Level** **m1**\
 **Level** **m2**\
 bool **silencer**\

## Detailed Description

The **AudioTone** class is used to create a frame of audio encoded single or dualtones.

The frame will be iterated for each request, so a continual tone can be extracted by frame.

**Author:**

David Sugar \<dyfet@ostel.com\> audio tone generator class.

## Constructor & Destructor Documentation

### ost::AudioTone::AudioTone (timeout\_t duration = `20`, Rate rate = `rate8khz`)

Construct a silent tone generator of specific frame size.

**Parameters:**

*duration* of frame in milliseconds. \
 *rate* of samples.

### ost::AudioTone::AudioTone (unsigned f1, unsigned f2, Level l1, Level l2, timeout\_t duration = `20`, Rate sample = `rate8khz`)

Construct a dual tone frame generator.

**Parameters:**

*f1* frequency of tone 1. \
 *f2* frequency of tone 2. \
 *l1* level of tone 1. \
 *l2* level of tone 2. \
 *duration* of frame in milliseconds. \
 *sample* rate being generated.

### ost::AudioTone::AudioTone (unsigned freq, Level level, timeout\_t duration = `20`, Rate sample = `rate8khz`)

Construct a single tone frame generator.

**Parameters:**

*freq* of tone. \
 *level* of tone. \
 *duration* of frame in milliseconds. \
 *sample* rate being generated.

### virtual ost::AudioTone::~AudioTone ()` [virtual]`

## Member Function Documentation

### void ost::AudioTone::silence (void)` [protected]`

Set the frame to silent.

### void ost::AudioTone::reset (void)` [protected]`

Reset the tone generator completely.

Produces silence.,

### void ost::AudioTone::cleanup (void)` [protected]`

Cleanup for virtual destructors to use.

### void ost::AudioTone::single (unsigned freq, Level level)` [protected]`

Set frame to generate single tone.

**Parameters:**

*freq* of tone. \
 *level* of tone.

### void ost::AudioTone::dual (unsigned f1, unsigned f2, Level l1, Level l2)` [protected]`

Set frame to generate dual tone.

**Parameters:**

*f1* frequency of tone 1 \
 *f2* frequency of tone 2 \
 *l1* level of tone 1 \
 *l2* level of tone 2

### Rate ost::AudioTone::getRate (void)` [inline]`

Get the sample encoding rate being used for the tone generator.

**Returns:**

sample rate in samples per second.

### size\_t ost::AudioTone::getSamples (void)` [inline]`

Get the frame size for the number of audio samples generated.

**Returns:**

number of samples processed in frame.

### bool ost::AudioTone::isSilent (void)

Test if the tone generator is currently set to silence.

**Returns:**

true if generator set for silence.

### virtual Linear ost::AudioTone::getFrame (void)` [virtual]`

Iterate the tone frame, and extract linear samples in native frame.

If endian flag passed, then convert for standard endian representation (byte swap) if needed.

**Returns:**

pointer to samples.

Reimplemented in **ost::TelTone**, **ost::DTMFTones**, and **ost::MFTones**.

### unsigned ost::AudioTone::getFrames (Linear buffer, unsigned number)

This is used to copy one or more pages of framed audio quickly to an external buffer.

**Returns:**

number of frames copied.

**Parameters:**

*buffer* to copy into. \
 *number* of frames requested.

### virtual bool ost::AudioTone::isComplete (void)` [virtual]`

See if at end of tone.

This is used for non-continues audio tones, or to detect 'break' events.

**Returns:**

true if end of data.

Reimplemented in **ost::TelTone**, **ost::DTMFTones**, and **ost::MFTones**.

## Member Data Documentation

### Rate ost::AudioTone::rate` [protected]`

### unsigned ost::AudioTone::samples` [protected]`

### Linear ost::AudioTone::frame` [protected]`

### double ost::AudioTone::df1` [protected]`

### double ost::AudioTone::df2` [protected]`

### double ost::AudioTone::p1` [protected]`

### double ost::AudioTone::p2` [protected]`

### Level ost::AudioTone::m1` [protected]`

### Level ost::AudioTone::m2` [protected]`

### bool ost::AudioTone::silencer` [protected]`

## Author

Generated automatically by Doxygen for ccAudio from the source code.
