เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดฎเตเดฑเตเดฑเตเดฐเดฟเดฏเตฝ เดเดจเตเดฑเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดคเตเดคเดคเดพเดฃเต
เดเตเตบ เดกเดฟเดฑเตเดฑเดเตเดเตผ
เด
เดตเดธเดพเดจเดคเตเดคเดฟเตฝ
เดชเดดเดฏ เดเดพเดฒเดคเตเดคเต, เดเดฒเตเดฒเดพ เดเตเดเตเดเดฌเดเตเดเตพเดเตเดเตเด เดเดฟเดตเดฟ เดเดฒเตเดฒเดพเดคเดฟเดฐเตเดจเตเดจเดชเตเดชเตเตพ, เด เดตเดฐเดฟเตฝ เดชเดเตเดคเดฟเดฏเตเด เดชเตเดฒเดฏเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดพเดจเดฒเตเดเตพ เดฎเดพเดฑเตเดฑเดฟ, เดเดฐเต เดเดฟเดตเดฟ เดจเดฟเตผเดฎเตเดฎเดพเดคเดพเดตเต เด เดตเดฐเตเดเต เดเดชเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดตเดฏเตผเดฒเตเดธเต เดฑเดฟเดฎเตเดเตเดเต เดเตบเดเตเดฐเตเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดตเดฟเดฆเตเดถ เดธเดพเดเตเดเตเดคเดฟเด เดชเดคเตเดฐเดเตเดเดณเตเดเต เด เดตเดฒเตเดเดจเดเตเดเดณเดฟเตฝ เดเตเดคเตเดเดเดฐเดฎเดพเดฏ เดตเดพเตผเดคเตเดคเดเตพ เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต. เด เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดเดฐเต เดธเดฎเตเดชเดจเดคเตเดคเดฟเตปเตเดฑเต เดเดชเดฏเตเดเดคเตเดคเดฟเดจเต เดจเดจเตเดฆเดฟ, เดตเดฟเดฆเตเดฐ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด เดฌเดพเดฑเตเดฑเดฑเดฟเดเดณเดฟเดฒเตเดฒเดพเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเต เดตเดฟเดถเดฆเดพเดเดถเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด เดฑเดฟเดฏเดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต - เดฑเดฟเดฎเตเดเตเดเต เดเตบเดเตเดฐเตเตพ เดฎเตเดเตเดเดพเดจเดฟเดเตเดเตฝ เดเดฏเดฟเดฐเตเดจเตเดจเต, เดเดฐเต เดธเดเดเตเดค เดเดชเดเดฐเดฃเดคเตเดคเดฟเตปเตเดฑเต เดนเตเดฌเตเดฐเดฟเดกเต เดเดฏเดฟเดฐเตเดจเตเดจเต - เดเดฐเต เดฎเตเดฑเตเดฑเดฒเตเดซเตเดฃเตเด เดฑเดฟเดตเตเตพเดตเดฑเตเด. เดฑเดฟเดตเตเตพเดตเตผ เดกเตเดฐเดฎเตเดฎเดฟเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดจเตเดณเดฎเตเดณเตเดณ เดฒเตเดน เดธเดฟเดฒเดฟเดฃเตเดเดฑเตเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดซเดฏเดฑเดฟเดเดเต เดชเดฟเตป เด เดตเดฏเดฟเดฒเตเดจเตเดจเดฟเตฝ เดคเดเตเดเดฟเดฏเดชเตเดชเตเตพ, เดธเดฟเดฒเดฟเดฃเตเดเตผ เด เดคเดฟเตปเตเดฑเตเดคเดพเดฏ เดเดตเตเดคเตเดคเดฟเดฏเดฟเตฝ เดฑเดฟเดเดเต เดเตเดฏเตเดฏเดพเตป เดคเตเดเดเตเดเดฟ. เดเดฐเตเดชเดเตเดทเต เด เตพเดเตเดฐเดพเดธเตเดฃเตเดเดฟเตฝ. เดเดฟเดตเดฟเดฏเดฟเดฒเต เดเดฒเดเตเดเตเดฐเตเดฃเดฟเดเตเดธเต เด เดธเดฟเดเตเดจเตฝ เดเตเดเตเดเต, เด เดคเดฟเตปเตเดฑเต เดเดตเตเดคเตเดคเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเต, เดเดเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดจเดเดคเตเดคเดฟ - เดเดพเดจเตฝ เดธเตเดตเดฟเดเตเดเตเดเตเดฏเตเดฏเตเด, เดตเตเดณเดฟเดฏเด เดฎเดพเดฑเตเดฑเตเด, เดเดฟเดตเดฟ เดเดซเต เดเตเดฏเตเดฏเตเด.
เดฎเตเดกเดฟเดฏ เดธเตเดเตเดฐเตเดฎเดฑเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดเตเดเดณเตเดเต เด เดฑเดฟเดตเต เดเดชเดฏเตเดเดฟเดเตเดเต เด เดเดฎเดพเตปเดกเต เดเตเดฐเดพเตปเดธเตเดฎเดฟเดทเตป เดธเดฟเดธเตเดฑเตเดฑเด เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดเดจเตเดจเต เดเดเตเดเตพ เดถเตเดฐเดฎเดฟเดเตเดเตเด.
เดเดฐเต เดฑเดฟเดฎเตเดเตเดเต เดเตบเดเตเดฐเตเตพ เด เดจเตเดเดฐเดฟเดเตเดเดพเตป, เดเดเตเดเดณเตเดเต เดเตเตบ เดเดจเดฑเตเดฑเตเดฑเดฑเดฟเตปเตเดฑเต เดเดฆเดพเดนเดฐเดฃเด เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดเตเดธเตเดเตเดฐเตเดเตเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดจเดฑเตเดฑเตเดฑเตผ เดซเตเดฐเตเดเตเดตเตปเดธเดฟเดฏเตเดเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดตเตเด เดเตบเดธเตเดณเดฟเดฒเตเดเตเดเต เดฒเดญเดฟเดเตเด เดเดฎเดพเตปเดกเตเดเตพ เดเดเตเดเตเดชเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจ เดกเตเดเตเดกเดฑเตเดณเตเดณ เดเดฐเต เดฑเดฟเดธเตเดตเดฑเตเด เดเดเตเดเตพ เดเดคเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเด. เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเต เดถเตเดทเด, เดเดจเดฑเตเดฑเตเดฑเตผ 6 เดเดตเตเดคเตเดคเดฟเดเดณเตเดเต เดเตเดฃเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฃเด, เด เดคเตเดชเดฏเตเดเดฟเดเตเดเต เดตเตเดณเดฟเดฏเด เดเตเดเตเดเดพเดจเตเด เดเตเดฑเดฏเตเดเตเดเดพเดจเตเด เดเดพเดจเตฝ เดฎเดพเดฑเตเดฑเดพเดจเตเด เดเดฟเดตเดฟ เดเตบ / เดเดซเต เดเตเดฏเตเดฏเดพเดจเตเด เดเดเตเดเตพ เดเดฎเดพเตปเดกเตเดเตพ เดเตปเดเตเดกเต เดเตเดฏเตเดฏเตเด. เดกเดฟเดฑเตเดฑเดเตเดเตผ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดเดจ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต:
struct _MSToneDetectorDef{
char tone_name[8];
int frequency; /**<Expected frequency of the tone*/
int min_duration; /**<Min duration of the tone in milliseconds */
float min_amplitude; /**<Minimum amplitude of the tone, 1.0 corresponding to the normalized 0dbm level */
};
typedef struct _MSToneDetectorDef MSToneDetectorDef;
เดเดฐเต เดกเดฟเดฑเตเดฑเดเตเดเดฑเดฟเดจเต เด เดเดเดจเดเดณเดฟเตฝ 10 เดเดฃเตเดฃเด เดจเตฝเดเดพเด, เด เดคเดฟเดจเดพเตฝ เดชเดคเตเดคเต เดเต-เดเตเตบ เดธเดฟเดเตเดจเดฒเตเดเตพ เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดกเดฟเดฑเตเดฑเดเตเดเดฑเดฟเดจเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเดพเดเตเด. เดเดจเตเดจเดพเตฝ เดเดเตเดเตพ เดเดฑเต เดธเดฟเดเดเดฟเตพ-เดเตเตบ เดธเดฟเดเตเดจเดฒเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเต. เดกเดฟเดฑเตเดฑเดเตเดเดฑเดฟเดฒเตเดเตเดเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดเตเดฎเดพเดฑเดพเตป, MS_TONE_DETECTOR_ADD_SCAN เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดซเตเดฐเตเดเตเดตเตปเดธเดฟ เดเดเดเดเตเดเดณเตเดณเตเดณ เดเดฐเต เดธเดฟเดเตเดจเตฝ เด เดคเดฟเตปเตเดฑเต เดเตปเดชเตเดเตเดเดฟเตฝ เดเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดกเดฟเดฑเตเดฑเดเตเดเตผ เดเดเตเดเดณเต เด เดฑเดฟเดฏเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ เด เดคเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตเดทเตป เดเดเตเดเตพ เด เดคเดฟเดจเต เดจเตฝเดเดฃเด. เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต ms_filter_set_notify_callback(). เดเตผเดเตเดฏเตเดฎเตเตปเตเดฑเตเดเตพ เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดเดคเดฟเดจเต เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเตปเตเดฑเดฑเตเด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเดจเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเตปเตเดฑเดฑเตเด เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเดจเดฟเดฒเตเดเตเดเต (เดเดชเดฏเตเดเตเดคเต เดกเดพเดฑเตเดฑ) เดเตเดฎเดพเดฑเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเตปเตเดฑเดฑเตเด เดฒเดญเดฟเดเตเดเตเดจเตเดจเต.
เดกเดฟเดฑเตเดฑเดเตเดเตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดฎเตเดชเตเตพ, เดเตเตพเดฌเดพเดเตเดเต เดซเดเดเตโเดทเดจเต เดเดชเดฏเตเดเตเดคเต เดกเดพเดฑเตเดฑ, เดกเดฟเดฑเตเดฑเดเตเดเตผ เดซเดฟเตฝเดเตเดเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฏเดฟเตปเตเดฑเตผ, เดเดตเตปเตเดฑเต เดเดกเตปเตเดฑเดฟเดซเดฏเตผ, เดเดตเตปเตเดฑเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดเดจ เดเดจเตเดจเดฟเดต เดฒเดญเดฟเดเตเดเตเด:
/** * Structure carried as argument of the MS_TONE_DETECTOR_EVENT**/
struct _MSToneDetectorEvent{
char tone_name[8]; /* ะะผั ัะพะฝะฐ ะบะพัะพัะพะต ะผั ะตะผั ะฝะฐะทะฝะฐัะธะปะธ ะฟัะธ ะฝะฐัััะพะนะบะต ะดะตัะตะบัะพัะฐ. */
uint64_t tone_start_time; /* ะัะตะผั ะฒ ะผะธะปะปะธัะตะบัะฝะดะฐั
, ะบะพะณะดะฐ ัะพะฝ ะฑัะป ะพะฑะฝะฐััะถะตะฝ. */
};
typedef struct _MSToneDetectorEvent MSToneDetectorEvent;
เดธเดฟเดเตเดจเตฝ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเดฟเตปเตเดฑเต เดฌเตเดฒเตเดเตเดเต เดกเดฏเดเตเดฐเด เดถเตเตผเดทเด เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดเดพเดฃเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดถเดฐเดฟ, เดเดชเตเดชเตเตพ เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเตเดณเตเดณ เดชเตเดฐเตเดเตเดฐเดพเด เดเตเดกเต เดคเดจเตเดจเต.
/* ะคะฐะนะป mstest4.c ะะผะธัะฐัะพั ะฟัะปััะฐ ัะฟัะฐะฒะปะตะฝะธั ะธ ะฟัะธะตะผะฝะธะบะฐ. */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
#include <mediastreamer2/msvolume.h>
#include <mediastreamer2/mstonedetector.h>
/* ะะพะดะบะปััะฐะตะผ ะทะฐะณะพะปะพะฒะพัะฝัะน ัะฐะนะป ั ััะฝะบัะธัะผะธ ัะฟัะฐะฒะปะตะฝะธั ัะพะฑััะธัะผะธ
* ะผะตะดะธะฐัััะธะผะตัะฐ. */
#include <mediastreamer2/mseventqueue.h>
/* ะคัะฝะบัะธั ะพะฑัะฐัะฝะพะณะพ ะฒัะทะพะฒะฐ, ะพะฝะฐ ะฑัะดะตั ะฒัะทะฒะฐะฝะฐ ัะธะปัััะพะผ, ะบะฐะบ ัะพะปัะบะพ ะพะฝ
* ะพะฑะฝะฐััะถะธั ัะพะฒะฟะฐะดะตะฝะธะต ั
ะฐัะฐะบัะตัะธััะธะบ ะฒั
ะพะดะฝะพะณะพ ัะธะณะฝะฐะปะฐ ั ะทะฐะดะฐะฝะฝัะผะธ. */
static void tone_detected_cb(void *data, MSFilter *f, unsigned int event_id,
MSToneDetectorEvent *ev)
{
printf(" ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: %sn", ev->tone_name);
}
int main()
{
ms_init();
/* ะกะพะทะดะฐะตะผ ัะบะทะตะผะฟะปััั ัะธะปัััะพะฒ. */
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_ID);
MSFilter *volume = ms_filter_new(MS_VOLUME_ID);
MSSndCard *card_playback =
ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
MSFilter *snd_card_write = ms_snd_card_create_writer(card_playback);
MSFilter *detector = ms_filter_new(MS_TONE_DETECTOR_ID);
/* ะัะธัะฐะตะผ ะผะฐััะธะฒ ะฝะฐั
ะพะดััะธะนัั ะฒะฝัััะธ ะดะตัะตะบัะพัะฐ ัะพะฝะพะฒ, ะพะฝ ะพะฟะธััะฒะฐะตั
* ะพัะพะฑัะต ะฟัะธะผะตัั ัะฐะทััะบะธะฒะฐะตะผัั
ัะธะณะฝะฐะปะพะฒ.*/
ms_filter_call_method(detector, MS_TONE_DETECTOR_CLEAR_SCANS, 0);
/* ะกะพะทะดะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ - ัะธะบะตั. */
MSTicker *ticker=ms_ticker_new();
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฒ ัะตะฟะพัะบั. */
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, volume, 0);
ms_filter_link(volume, 0, detector, 0);
ms_filter_link(detector, 0, snd_card_write, 0);
/* ะะพะดะบะปััะฐะตะผ ะบ ัะธะปัััั ััะฝะบัะธั ะพะฑัะฐัะฝะพะณะพ ะฒัะทะพะฒะฐ. */
ms_filter_set_notify_callback(detector,
(MSFilterNotifyFunc)tone_detected_cb, NULL);
/* ะะพะดะบะปััะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ. */
ms_ticker_attach(ticker,voidsource);
/* ะกะพะทะดะฐะตะผ ะผะฐััะธะฒ, ะบะฐะถะดัะน ัะปะตะผะตะฝั ะบะพัะพัะพะณะพ ะพะฟะธััะฒะฐะตั ั
ะฐัะฐะบัะตัะธััะธะบั
* ะพะดะฝะพะณะพ ะธะท ัะพะฝะพะฒ, ะบะพัะพััะน ััะตะฑัะตััั ะพะฑะฝะฐััะถะธะฒะฐัั: ะขะตะบััะพะฒะพะต ะธะผั
* ะดะฐะฝะฝะพะณะพ ัะปะตะผะตะฝัะฐ, ัะฐััะพัะฐ ะฒ ะณะตััะฐั
, ะดะปะธัะตะปัะฝะพััั ะฒ ะผะธะปะปะธัะตะบัะฝะดะฐั
,
* ะผะธะฝะธะผะฐะปัะฝัะน ััะพะฒะตะฝั ะพัะฝะพัะธัะตะปัะฝะพ 0,775ะ. */
MSToneDetectorDef scan[6]=
{
{"V+", 440, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะฒะตะปะธัะธัั ะณัะพะผะบะพััั". */
{"V-", 540, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะผะตะฝััะธัั ะณัะพะผะบะพััั". */
{"C+", 640, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะฒะตะปะธัะธัั ะฝะพะผะตั ะบะฐะฝะฐะปะฐ". */
{"C-", 740, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะฃะผะตะฝััะธัั ะฝะพะผะตั ะบะฐะฝะฐะปะฐ". */
{"ON", 840, 100, 0.1}, /* ะะพะผะฐะฝะดะฐ "ะะบะปััะธัั ัะตะปะตะฒะธะทะพั". */
{"OFF", 940, 100, 0.1} /* ะะพะผะฐะฝะดะฐ "ะัะบะปััะธัั ัะตะปะตะฒะธะทะพั". */
};
/* ะะตัะตะดะฐะตะผ ะฒ ะดะตัะตะบัะพั ัะพะฝะพะฒ ะฟัะธะผะตัั ัะธะณะฝะฐะปะพะฒ. */
int i;
for (i = 0; i < 6; i++)
{
ms_filter_call_method(detector, MS_TONE_DETECTOR_ADD_SCAN,
&scan[i]);
}
/* ะะฐัััะฐะธะฒะฐะตะผ ััััะบัััั, ัะฟัะฐะฒะปััััั ะฒัั
ะพะดะฝัะผ ัะธะณะฝะฐะปะพะผ ะณะตะฝะตัะฐัะพัะฐ.*/
MSDtmfGenCustomTone dtmf_cfg;
dtmf_cfg.tone_name[0] = 0;
dtmf_cfg.duration = 1000;
dtmf_cfg.frequencies[0] = 440;
/* ะัะดะตะผ ะณะตะฝะตัะธัะพะฒะฐัั ะพะดะธะฝ ัะพะฝ, ัะฐััะพัั ะฒัะพัะพะณะพ ัะพะฝะฐ ัััะฐะฝะพะฒะธะผ ะฒ 0.*/
dtmf_cfg.frequencies[1] = 0;
dtmf_cfg.amplitude = 1.0;
dtmf_cfg.interval = 0.;
dtmf_cfg.repeat_count = 0.;
/* ะัะณะฐะฝะธะทัะตะผ ัะธะบะป ัะบะฐะฝะธัะพะฒะฐะฝะธั ะฝะฐะถะฐััั
ะบะปะฐะฒะธั. ะะฒะพะด ะฝัะปั ะทะฐะฒะตััะฐะตั
* ัะธะบะป ะธ ัะฐะฑะพัั ะฟัะพะณัะฐะผะผั. */
char key='9';
printf("ะะฐะถะผะธัะต ะบะปะฐะฒะธัั ะบะพะผะฐะฝะดั, ะทะฐัะตะผ ะฒะฒะพะด.n"
"ะะปั ะทะฐะฒะตััะตะฝะธั ะฟัะพะณัะฐะผะผั ะฒะฒะตะดะธัะต 0.n");
while(key != '0')
{
key = getchar();
if ((key >= 49) && (key <= 54))
{
printf("ะัะฟัะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ: %cn", key);
/* ะฃััะฐะฝะฐะฒะปะธะฒะฐะตะผ ัะฐััะพัั ะณะตะฝะตัะฐัะพัะฐ ะฒ ัะพะพัะฒะตัััะฒะธะธ ั
* ะบะพะดะพะผ ะฝะฐะถะฐัะพะน ะบะปะฐะฒะธัะธ.*/
dtmf_cfg.frequencies[0] = 440 + 100*(key-49);
/* ะะบะปััะฐะตะผ ะทะฒัะบะพะฒะพะน ะณะตะฝะตัะฐัะพั c ะพะฑะฝะพะฒะปะตะฝะฝะพะน ัะฐััะพัะพะน. */
ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY_CUSTOM,
(void*)&dtmf_cfg);
}
ms_usleep(20000);
}
}
เดเดเตเดเตพ เดชเตเดฐเตเดเตเดฐเดพเด เดเดเดชเตเตฝ เดเตเดฏเตเดฏเตเดเดฏเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด เดจเดฎเตเดเตเดเต เด เดชเตเดฐเตเดเตเดฐเดพเด เดชเตเดฐเตเดฎเดพเดฑเตเดฑเด เดชเตเดฒเตเดฏเตเดณเตเดณ เดเดจเตเดจเต เดฒเดญเดฟเดเตเดเตเด:
$ ./mstest4
ALSA lib conf.c:4738:(snd_config_expand) Unknown parameters 0
ALSA lib control.c:954:(snd_ctl_open_noupdate) Invalid CTL default:0
ortp-warning-Could not attach mixer to card: Invalid argument
ALSA lib conf.c:4738:(snd_config_expand) Unknown parameters 0
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default:0
ALSA lib conf.c:4738:(snd_config_expand) Unknown parameters 0
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default:0
ortp-warning-Strange, sound card Intel 82801AA-ICH does not seems to be capable of anything, retrying with plughw...
ะะฐะถะผะธัะต ะบะปะฐะฒะธัั ะบะพะผะฐะฝะดั, ะทะฐัะตะผ ะฒะฒะพะด.
ะะปั ะทะฐะฒะตััะตะฝะธั ะฟัะพะณัะฐะผะผั ะฒะฒะตะดะธัะต 0.
ortp-warning-alsa_set_params: periodsize:256 Using 256
ortp-warning-alsa_set_params: period:8 Using 8
"1" เดฎเตเดคเตฝ "6" เดตเดฐเตเดฏเตเดณเตเดณ เดเดคเตเดเตเดเดฟเดฒเตเด เดเตเดเตพ เด เดฎเตผเดคเตเดคเตเด, "Enter" เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเตเด, เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเตเดชเตเดฒเตเดณเตเดณ เดฒเดฟเดธเตเดฑเตเดฑเดฟเดเดเต เดฒเดญเดฟเดเตเดเตเด:
2
ะัะฟัะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ: 2
ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: V-
1
ะัะฟัะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ: 1
ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: V+
3
ะัะฟัะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ: 3
ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: C+
4
ะัะฟัะฐะฒะปะตะฝะฐ ะบะพะผะฐะฝะดะฐ: 4
ะัะธะฝััะฐ ะบะพะผะฐะฝะดะฐ: C-
0
$
เดเดฎเดพเตปเดกเต เดเตเดฃเตเดเตพ เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏเดฟ เด เดฏเดเตเดเดคเดพเดฏเตเด เดกเดฟเดฑเตเดฑเดเตเดเตผ เด เดตเดฏเต เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดคเตเด เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต.
เด เดเตเดคเตเดค เดฒเตเดเดจเดคเตเดคเดฟเตฝ, เดเดเตเดเตพ RTP เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเดฅเตผเดจเตเดฑเตเดฑเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดฒเตเดเต เดเดฐเต เดเดกเดฟเดฏเต เดธเดฟเดเตเดจเตฝ เดเตเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดคเดฟเดฐเดฟเดฏเตเดเดฏเตเด เด เดคเต เดเดเตเดเดณเตเดเต เดฑเดฟเดฎเตเดเตเดเต เดเตบเดเตเดฐเตเดณเดฟเตฝ เดเดเดจเดเดฟ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เด เดตเดฒเดเดฌเด: www.habr.com