เจฒเฉเจ เจธเจฎเฉฑเจเจฐเฉ เจฎเฉเจฐเฉ เจคเฉเจ เจฒเจ เจเจ เจนเฉ
เจเฉเจจ เจกเจฟเจเฉเจเจเจฐ
เจชเจฟเจเจฒเฉ เจตเจฟเฉฑเจ
เจชเฉเจฐเจพเจฃเฉ เจฆเจฟเจจเจพเจ เจตเจฟเฉฑเจ, เจเจฆเฉเจ เจนเจฐ เจชเจฐเจฟเจตเจพเจฐ เจเฉเจฒ เจเฉฑเจ เจเฉเจตเฉ เจจเจนเฉเจ เจธเฉ, เจ เจคเฉ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจ เฉฑเจงเจฟเจเจ เจจเฉ เจชเจฒเฉเจ เจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจจเจฒเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฟเจ, เจตเจฟเจฆเฉเจธเจผเฉ เจคเจเจจเฉเจเฉ เจชเฉเจฐเฉเจธ เจฆเฉเจเจ เจธเจฎเฉเจเจฟเจเจตเจพเจ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจช เจเจผเจฌเจฐเจพเจ เจธเจพเจนเจฎเจฃเฉ เจเจเจเจ เจเจฟ เจเฉฑเจ เจเฉเจตเฉ เจจเจฟเจฐเจฎเจพเจคเจพ เจจเฉ เจเจชเจฃเฉ เจกเจฟเจตเจพเจเจธเจพเจ เจจเฉเฉฐ เจตเจพเจเจฐเจฒเฉเฉฑเจธ เจฐเจฟเจฎเฉเจ เจเฉฐเจเจฐเฉเจฒ เจจเจพเจฒ เจฒเฉเจธ เจเฉเจคเจพ เจนเฉเฅค เจตเฉเจฐเจตเจฟเจเจ เจคเฉเจ เจเจน เจเจพเจฃเจฟเจ เจเจพเจเจฆเจพ เจธเฉ เจเจฟ เจฐเจฟเจฎเฉเจ เจเฉฐเจเจฐเฉเจฒ เจเฉฑเจ เจ เจธเจพเจงเจพเจฐเจจ เจชเจนเฉเฉฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฌเฉเจเจฐเฉ เจคเฉเจ เจฌเจฟเจจเจพเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ - เจฐเจฟเจฎเฉเจ เจเฉฐเจเจฐเฉเจฒ เจฎเจเฉเจจเฉเจเจฒ เจธเฉ เจ เจคเฉ เจเฉฑเจ เจธเฉฐเจเฉเจค เจฏเฉฐเจคเจฐ เจฆเจพ เจเฉฑเจ เจนเจพเจเจฌเฉเจฐเจฟเจก เจธเฉ - เจเฉฑเจ เจฎเฉเจเจพเจฒเฉเจซเฉเจจ เจ เจคเฉ เจเฉฑเจ เจฐเจฟเจตเจพเจฒเจตเจฐเฅค เจฐเจฟเจตเจพเจฒเจตเจฐ เจฆเฉ เจกเจฐเฉฑเจฎ เจตเจฟเฉฑเจ เจตเฉฑเจ-เจตเฉฑเจ เจฒเฉฐเจฌเจพเจ เจฆเฉ เจฎเฉเจเจฒ เจธเจฟเจฒเฉฐเจกเจฐ เจนเฉเฉฐเจฆเฉ เจธเจจ, เจ เจคเฉ เจเจฆเฉเจ เจซเจพเจเจฐเจฟเฉฐเจ เจชเจฟเฉฐเจจ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจจเฉเฉฐ เจฎเจพเจฐเจฆเจพ เจธเฉ, เจคเจพเจ เจธเจฟเจฒเฉฐเจกเจฐ เจเจชเจฃเฉ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ 'เจคเฉ เจตเฉฑเจเจฃ เจฒเฉฑเจ เจชเฉเจเจฆเจพ เจธเฉเฅค เจธเฉฐเจญเจต เจคเฉเจฐ 'เจคเฉ เจ เจฒเจเจฐเจพเจธเจพเจเจเจก 'เจคเฉ. เจเฉเจตเฉ เจตเจฟเจเจฒเฉ เจเจฒเฉเจเจเฉเจฐเฉเจจเจฟเจเจธ เจจเฉ เจเจน เจธเจฟเจเจจเจฒ เจธเฉเจฃเจฟเจ เจ เจคเฉ, เจเจธเจฆเฉ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจเจฟเจค เจเจพเจฐเจตเจพเจ เจเฉเจคเฉ - เจเฉเจจเจฒ เจจเฉเฉฐ เจฌเจฆเจฒเฉ, เจตเจพเจฒเฉเจ เจฎ เจฌเจฆเจฒเฉ, เจเฉเจตเฉ เจฌเฉฐเจฆ เจเจฐเฉ.
เจ เฉฑเจ เจ เจธเฉเจ เจฎเฉเจกเฉเจ เจธเจเฉเจฐเฉเจฎเจฐ เจฆเฉ เจเจชเจฃเฉ เจเจฟเจเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจเจธ เจเจฎเจพเจเจก เจเฉเจฐเจพเจเจธเจฎเจฟเจธเจผเจจ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจพเจเจเฉเฅค
เจฐเจฟเจฎเฉเจ เจเฉฐเจเจฐเฉเจฒ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจเจชเจฃเฉ เจเฉเจจ เจเจจเจฐเฉเจเจฐ เจฆเฉ เจเจฆเจพเจนเจฐเจฃ เจฆเฉ เจชเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค เจ เจธเฉเจ เจเจธ เจตเจฟเฉฑเจ เจเฉเจธเจเฉเจฐเฉเจ เจคเฉเจ เจเจจเจฐเฉเจเจฐ เจฆเฉ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฆเจพ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจ เจคเฉ เจเฉฑเจ เจกเฉเจเฉเจกเจฐ เจตเจพเจฒเจพ เจเฉฑเจ เจฐเจฟเจธเฉเจตเจฐ เจเฉเฉเจพเจเจเฉ เจเฉ เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจเจเจชเฉเฉฑเจ เจเจฐเฉเจเจพเฅค เจคเจฌเจฆเฉเจฒเฉ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจจเจฐเฉเจเจฐ เจจเฉเฉฐ 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