แแแแแถแแแแแขแแแแแแแบแแแแธแแแแปแ
แแถแแแแแแพแแงแแแแแแแแแแพแแแแแแแ
แแ
แแปแแแแแ
แแแแแแแแแพแแแนแแแแแแพแแแแแแแทแแธแแฝแแแแแขแถแ แแแแแพแแแแแแถแแแกแแแแ แแพแแถแแแแกแแแ แแพแแแแธแแแแแแแถแแแแแ แถแแแ แแพแแแแแผแแแแแถแแแแแแแแแ แแแแปแแแแแแแธแแแแแพแแแแกแแแแแแแแแ แถแแแถแแแแแแแ
แแพแแขแถแแแแแถแแแแถแแแธแแแแแแแ แแแแถแ แแแแแบแแถแแทแแแ แแแแแแ แผแแแทแแแแแแแแแแแแพแแแแแถแแแแธแ แแแแฝแแแแ แแแขแปแแแแแ แถแแขแแแธแแฟแแแแแแแแ แ แแปแแแแแแแแแแ แถแแแธแแแแแแแแแแแแพแแแถแแแแแปแแแทแแแแแแ แแทแแแแแ แแแแแแแแแ แแ แแถแแแแแปแแ แแปแแแแแแ แแฝแแถแแธแแแแแแถแแแแผแแแถแแ แแแขแปแแแแแ แถแ แ แพแแแแแแแแแแแแแแแแผแแแถแแ แแแขแปแแแแแ แถแแแถแขแแแแแแแแถแแแแแแแ แแแแฝแแแแแแแแถแแแ แแปแแแแแแแแบแแถแแฝแแแทแแแแแแแแแแแแแปแแแทแแแแแแแแแแผแแแถแแแแแแผแแแธแแแแแแแ แแแแแแ แแถแแผแแ แแแแแแแฝแแขแถแ แแถแแแถแแปแ แผแ แแทแแแแแแแแแถแ แแแพแแ
แแถแแถแแแขแแแ แถแแแแแแพแแแถแแฝแแแนแแแแแแแแถแกแทแแถ แแแแแแแแแแแแแแแถแแแแแทแแแแแแแแแแผแแแถแแแแแถแแ แแแแปแแแแแแแ แแแแแ แแถแแแแแแแถแกแทแแถแแแแแแถ แแแแแแแธแแฝแแแแแแพแแแถแแแแแปแแแทแแแแแแแแถแแแขแแแแแแแถแแแ แแถแแแแแ แผแแแแแแแถแ แ แพแแแถแแแแแแปแแแถแแฝแแแนแแแแแแแแ แผแแแ แแแแปแแแฝแแ แแแแผแ แแแแแแแแแแ แแทแแแแแปแแแ แแนแแแแแแแแถแกแทแแถแแแแพแแถแแแแแถ แแแแแถแแแแแแแแแแแแแแแแถแแแแ แแแแแแแแแแแแถ (แขแถแ แแถแแแแแแแแแถแ แแแพแ) แ แพแแแผแ แแแแแแ แแพแ แแแแแถแแแแธแแแแแแ แปแแแแแแแแ แแแแปแแแแแแถแแแแแแพแแแถแแ แแ แแถแแแแแแทแแแแแทแแนแแแแแแ แผแแแแแแถแกแทแแถแแแแธแแแแแแ Beats แแถแแแแแถแแแพแ แแแแพแแถแแ แแแแแแแแ 10 แแทแแแแธแแทแแถแแธแ
แ แผแแแพแแแแแแแแแ แแแแถแแแแถแแแแแแแพแแ แแแแแแถแกแทแแถแแแแแแแถแแแแแ แผแแแแแแแแแแแแถแแ แแแแแบแแถแแแแแ แแแแแแแแแแแแพแแแแแปแแแทแแแแแแแแแแแถแแแแแแผแแแแแ แแทแแแแแแแแแแแถแแแแแถแแแแแแแแถแกแทแแถแแธแแฝแแแ แแแแแทแแแพแแพแแ แถแแแแปแแแแแปแแแแแแถแแแแแปแแแแแแแถแแแแกแแ แแแแแแแถแแขแแแธแแแแ แแธแแถแแแแแแแแแแถแแแแแแแแ แแ glance แแแแผแ แแถแ แถแแแแผแ แแถแ แแแแแแแแแปแแแถแแแแแแพแแแแแปแแแทแแแแแแแแแแแถแแแแแแแแแแถแแ - แแแแแถแแแแธแแถแแแขแแ แแถแแทแแขแถแ แแแแถแแแแถแ แแแปแแแแแแแแปแแแถแแแแแแแบแ แถแแแถแ แแแแแแถแแแแแแแทแแแแแทแแถแแแแแแถแแแธแแแแแแพแแแแแแถแแแกแแแ แแแถแแแธแแแแแพแแแแแพแแแแปแแแถแแแแแแแผแ แแถแแแแแนแแแแแแถแแแแ แแแแแแแถแแแแถแแแแกแแแแ แแแแปแแแฝแแแถแ แแ แแแแปแแแแแถแแแถแแแแแแแถแแแแแแถ แแแถแแแธแแแแแพแแแแแผแแแถแแแทแ แ แพแแแแแถแแแแแแแแแผแแแแแปแแแแแ แผแแแ แแทแแแแแแ แแผแ แแแแ แแแแปแแแแแถแแแแแแแแแแถแแแแแแแแถแแแแทแแแแแถแแแแแแผแแแถแแแแแแแแแแธแแถแแแแผแแแธแแแแแแแ แแแแถแ แแแแแแแ แแแแแแแถแแแแกแแแ แแแแแแแแแปแแแแแแแแแแแแแถแแแแธแแฝแแแแแแแแถแแแแ แแถแแแแแ แผแแแแแแแถแ
แแแปแแแแแขแแแธแแแแแแแแถแแแแแถแแแแแแผแแแแแแทแแแพแแแถแแแธแแแแแพแแแแแผแแแถแแแแแแแแถแแแแแแแแถแฑแแแ แถแแแแแกแแ แแถแ แถแแแแแแพแแแแแแพแแแแแถแแแแกแแ แ แพแแแแแฝแแแฝแแแถแแแแแแแผแแ แแแแปแแแแแปแแแแแ แผแ แ แพแแแถแแแแแแปแแแแแแถแแแแแถแแแแแแผแแแ แแทแแแแแแ แแถแแแแกแแแ แถแแแแแแพแแ แถแแแแแกแแแ แแถแโแแแแแโแแแโแแถโแแแแแแทแแธโแแแโแขแแปแแแแโแแแแแแโแแถแแแถแโแแแโแแถแโแแทแแแแแถโแแถแแแพแ
/* ะคะฐะนะป mstest2.c */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
int main()
{
ms_init();
/* ะกะพะทะดะฐะตะผ ัะบะทะตะผะฟะปััั ัะธะปัััะพะฒ. */
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_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);
/* ะกะพะทะดะฐะตะผ ัะธะบะตั. */
MSTicker *ticker = ms_ticker_new();
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฒ ัะตะฟะพัะบั. */
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, snd_card_write, 0);
/* ะะพะดะบะปััะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ. */
ms_ticker_attach(ticker, voidsource);
/* ะะบะปััะฐะตะผ ะทะฒัะบะพะฒะพะน ะณะตะฝะตัะฐัะพั. */
char key='1';
ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY, (void*)&key);
/* ะะฐะตะผ, ะฒัะตะผั, ััะพะฑั ะฒัะต ะฑะปะพะบะธ ะดะฐะฝะฝัั
ะฑัะปะธ ะฟะพะปััะตะฝั ะทะฒัะบะพะฒะพะน ะบะฐััะพะน.*/
ms_sleep(2);
}
แแแแแถแแแแธแ แถแแแแแแพแแแแแแแทแแธแแแแถแแแแแ แแแแแแแธแแแแผแแแถแแแแแแพแแ voidsource, dtmfgen, snd_card_write. แแแแแแแถแกแทแแถแแแแผแแแถแแแแแแพแแกแพแแ
แแแแแถแแแแแขแแแแแแแผแแแแแถแแแแแแแแแแแแแถแแแแแแแธแแแแแแพแ แ แพแแแแแแแแถแกแทแแถแแแแผแแแแแแแถแแแ แปแแแแแแ แแแแแแแแแแถแแแแธแแแแแแแแแธแแนแแ แถแแแแแแพแแแแแพแแแถแแแแแถแแแ แแแแแทแแแพแขแแแแแแแถแแแแแแแแแถแกแทแแถแแ แแนแแแแแแแธแแแแแทแแแถแแแแถแแแแแ แแ แแถแขแถแ แแพแแกแพแแแแแแแแแแทแแธแแแแถแแแแแแแถแแ แแแแแทแแแพแแถแแแแพแแแแแแแแแถแแ แแ แแถแแแแฝแแแ แแแแปแแแแแแแแแแถแแแแถแแฝแแแนแแแถแแปแแแแ แผแแแถแแแขแแ แฌแแแแแแแแถแแแขแแ "แแแแฝแแแ แแพแขแถแแถแ" (แแทแแแแแถแแ)แ
แแถแแแแแถแแแแแแแแแแแผแแแถแแแแแพแแแแแแแพแแปแแแถแ
ms_filter_link(src, src_out, dst, dst_in)
แแแแขแถแแปแแแแแแแธแแฝแแแถแแแแแทแ แแ แแแแแแแแแแ แขแถแแปแแแแแแแธแแธแแแบแแถแแแแแแแแแแแแแแ (แ แแแถแแแถแแถแแปแแแแ แผแ แแทแแแแแแแแแแแผแแแถแแแถแแแแแแแแแ แถแแแแแแพแแแธแแผแแแ)แ แขแถแแปแแแแแแแธแแธแแบแแถแแแแแทแ แแ แแแแแแขแแแแแแฝแ แแธแแฝแแแบแแถแแแแแแแ แผแแขแแแแแแฝแแ
แแแแแแแถแแแขแแแแแแผแแแถแแแแแถแแ แ แพแแแแแแแแถแกแทแแถแแแแผแแแถแแแแแถแแแ แปแแแแแแ (แแแ แแแ แแพแแแนแแ แ แแถแแถ ticker แแแถแแแถแแแแ)แ แแแแแถแแแแธแแแแแแแแแธแแแกแแแแแแแแพแแ แถแแแแแแพแแแแแพแแแถแ แแแปแแแแแแแแถแแขแแแธแขแถแ แแบแแ แแแแปแแงแแแแแแแแแแแแแแแแแปแแแแแผแแแแแ แกแพแแแ - แแแถแแแธแแแแแแพแแแแกแแแแแแผแแแถแแแทแ แ แพแแแแแถแแแแแแแแแแถแแแแแแปแแแทแแแแแแแแแแ แผแแแแแแแแแแแแแถแแแ แแพแแแแธแ แถแแแแแแพแแแแแแพแแแแแแแ แขแแแแแแแผแแแแแพแแแถแแแทแแธแแถแแแแแแแแแแแแแถแแแธแแแแแพแแ
แแพแแแนแแแแแแพแแแแแแถแแธแแแแแแแ (DTMF) แแแแแแแผแแแนแแแถแแ แปแ แแแผแแปแ "1" แแ แแพแแผแแแแแแแ แแพแแแแธแแแแพแแผแ แแแแแพแแแแแพแแปแแแถแ ms_filter_call_method() แแพแแ แ แแทแแธแแถแแแแแ MS_DTMF_GEN_PLAY แแแแแแแแแถแแแแถแแถแขแถแแปแแแแแ แ แแแขแปแแแ แแแแแผแแแแแแแแแถแ แถแแแแถแแแแแธแแฝแแแแแแแผแแแแแถแ
แขแแแธแแแแแ แแแแแบแแแแผแแ แแแแแแแแแแแทแแธแ
$ gcc mstest2.c -o mstest2 `pkg-config mediastreamer --libs --cflags`
แ แพแแแแแ
$ ./mstest2
แแแแแถแแแแธแ แถแแแแแแพแแแแแแแทแแธ แขแแแแแนแแฎแแแแแถแแแกแแแแแแธแแฝแแแแแแถแแแแแแแแแธแแแ แแแแปแแงแแแแแแแแแแแแแแแแแปแแแแแผแแแแ
แแพแโแแถแโแแแแแพแ แแทแโแแพแโแแแแพแแแถแโแแแแแแธโแแแกแแโแแแแผแโแแแแโแแพแแ แแพแแแถแแแพแแแธแแแแแแแแแพแ filter instances แแแแแแแแถแแแแฝแแแถ แแทแแแแแแ แ
method แแแแแแฝแแแแ แแแแแแแแแแแพแแแแแแถแแ
แทแแแแแถแแฝแแแนแแแถแแแแแแแแแแแผแแแแแแแพแ แแพแแแ
แแแแแแผแแแแ
แทแแแแแปแแแถแแแแพแแถแแแทแแแแแแถแแแแแแทแแธแแแแแแพแแแทแแแแแแแแขแแแแ
แแ
แถแแแแแแถแแแแแแปแแแปแแแปแแแแแ
แแแ แแ
แแแแแถแแ
แแแแแ: www.habr.com