แกแขแแขแแแก แแแกแแแ แแฆแแแฃแแแ แฉแแแ
แขแแแแก แแแแแ แแขแแ แแก แจแแฅแแแ
แฌแแแ
แแฆแแก แฉแแแ แจแแแฅแแแแ แแแแแแแชแแแก, แ แแแแแกแแช แจแแฃแซแแแ แฎแแแก แแแ แแแแ แขแแแแก แกแแแแแแแก แแแแแ แแ แแแ. แแ แแ แแแแแแแก แแแแแกแแญแ แแแแ แฉแแแ แฃแแแ แแแแแแแแจแแ แแ แคแแแขแ แแแ แฎแแแก แแแแแ แแขแแ แแก แฌแ แแจแ, แ แแแแแแช แแแฉแแแแแแแ แฅแแแแแ:
แฉแแแ แแแแแฎแฃแแแแ แแแแแ แแแแก แแแ แชแฎแแแแแ แแแ แฏแแแแ, แแก แแ แแก แแแแแ แแฃแแแแ, แ แแแแแแแช แแแซแ แแแแก แฉแแแแ แแแแแชแแแแ แแแแแแ. แแกแ แแแแช แแแแแ แแแแแแจแแแแก. แแแ แแแฃแแฎแแแแแ แแแฃแแแแแแแ แคแแแขแ แแแแ, แ แแแแแแแช แแแฃแจแแแแแแ แแแแแชแแแแ แแแแแแแก แแ แแแแแแฅแแก แจแแแแแ. แแแ แแแฃแแฎแแแแก แจแแแแแ แแแแแแแแฃแแแ แแแกแ แ แแแ แแ แคแแแขแ แแก แขแแแ แแแแแแแแฃแแแ แแแแ แแกแแแแแ แแฎแแแแ แฅแแแแแ. แแแ แแแฃแแฎแแแแแแก แแแแแแแแจแแ แแแแแ แแกแ แแแ แแ แแก แแแแแชแแแแ แ แแแแแ, แ แแแแแก แแแจแแแแแแแแช แแแแแชแแแแ แแแแแแแ แแแแแแชแแแ แคแแแขแ แแแแ แคแแแขแ แแแแ. แแแแแแแ, แคแแแขแ แก แจแแแซแแแแ แฐแฅแแแแแก แแ แแแแแ แจแแงแแแแ แแ แแแแแแแแแแ.
แแก แงแแแแแคแแ แ แแฌแงแแแ แกแแแแแก แฌแงแแ แแแแ, แ แแแแแแช แแแแแแก แขแแแแก, แ แแแแแแแช แแแแแชแแแแแ แแแแแแแแแแแ แคแแแขแ แแแจแ. แแแกแ แกแแแแแก แชแแแแแก แแแฎแแแแแ, แแแแแแฃแแ แคแแแขแ แ แแแฃแจแแแแแก แงแแแแ แแแแแชแแแแ แแแแแก, แ แแแแแแแช แแแก แจแแงแแแแแจแแ. แแ แแแแก แแแแแแแก แจแแแแแแ แ แแแจแ. แฏแแ แกแแแแแก แฌแงแแ แแกแแแ แงแแแแแแ แแฎแแแก แแงแแคแ แคแแแขแ แ แแกแ แฃแแแแก แแแแแแแแแแก, แจแแแแแ แแแก แแแแแกแแแแแแแ แแแแแแจแแ แแแฃแแ แคแแแขแ แแแ (แจแแแซแแแแ แแงแแก แแแแ แ แแแแแกแแแแแ) แแ แ.แจ. แแแก แจแแแแแ, แ แแช แฏแแญแแจแ แแแแ แคแแแขแ แ แแแแกแ แฃแแแแก แแแแฃแจแแแแแแก, แจแแกแ แฃแแแแ แฉแแ แแแแ แแฎแแแ แกแแแแแก แแแกแแแแแแ. แแแ แขแงแแแแ, แแแแฃแแแกแฎแแแแแ, แแแฐแงแแแแ 10 แแแแแฌแแแแก แแแขแแ แแแแก.
แแแแฃแแ แฃแแแแ แฉแแแแก แแแแแ แแแแก. แกแแแแแก แชแแแแแแ แแแแแก แแฃแแแแแก แฌแงแแ แแก แจแแงแแแแแจแ; แแก แแ แแก แคแแแขแ แ, แ แแแแแแช แแแแแแแแฃแแแ แแแแแชแแแแ แแแแแแก แแแแแ แแ แแแแ, แ แแแแแแช แจแแแชแแแก แแฃแแแแก แแแก แแแแแกแแแแแแ แแแแแแฃแแ แกแแแแแก แชแแแแแกแแแแก. แแฃ แแ แแแแแก แแแแแแฎแแแแแ, แ แแแแ แช แฎแแแก แแแแฃแจแแแแก แแแแแก, แแแจแแ แแก แกแฎแแ แแ แแคแแ แแ, แแฃ แแ แ แกแแฉแฃแแ. แแ แแ แจแแฎแแแแแ, แฃแชแแแฃแ แแ แแแแแชแแแแ แแแแแแแแก แแฃแแแแแ แแแแแ แแ แแแ - แแแแแก แแ แแแแแก, แแแกแ แแแกแแแแ แจแแฃแซแแแแแแแ, แแแแ แแ แแก แแแแแแแ แแฃแชแแแแแแแแ แฎแแแก แกแแแแแแแก แแแแแ แแขแแ แแก แแฃแจแแแแแกแแแแก. แแแแแ แแขแแ แ แแงแแแแแก แแ แแแแแแแก, แ แแแแ แช แชแแ แแแแ แคแฃแ แชแแแ, แฉแแฌแแ แก แแแแจแ แฎแแแก แแแแฃแจแแแก. แแแ แแแแฃแ แแแแแแแ แแแแแจแ, แแแแแ แแขแแ แ แแแแแ แแฃแแแ แแ แฃแแ แแแแ แแแแแกแชแแแก แจแแงแแแแแก แแแแแแแก แแแแแกแแแแแแ. แแแ แแแแ, แแฃแแแแแก แแแแแแแ แฃแชแแแแแ แแแแแก แแแแ แฌแ แแจแ แแแ แชแฎแแแแแ แแแ แฏแแแแ แแ แแแแแ แแแแ แฎแแแก แแแ แแแจแ. แ แแแแแแช แฉแฃแแแ แแฆแแแก แแแแแแแก แแแก แจแแงแแแแแกแแแ แแแแแแจแแ แแแฃแแ แ แแแแแแ.
แแแแ แแ แงแแแแแคแแ แ แแชแแแแแ, แแฃ แแแแแ แแขแแ แก แแแแชแแแ แฎแแแก แแแแแ แแก แแ แซแแแแแ, แแก แแฌแงแแแก แฎแแแก แแแแฃแจแแแแก แแแแแ แแ แแแแก แแ แแแแชแแแแแก แแแ แแแแฃแจแแแแ แจแแงแแแแแก แแแแแแแจแ แแ แแงแแแแแก แจแแชแแแแ แแแแแแแก แแแแแกแแแแแแ. แฎแแแก แแแ แแแ แแฌแงแแแก แฎแแแก แแแแแ แแก. แฅแแแแแ แแแชแแแฃแแแ แแ แแแ แแแ, แ แแแแแแช แแฎแแ แชแแแแแแก แแแแแ แแฆแฌแแ แแ แกแแแฃแจแแ แกแฅแแแแก:
/* ะคะฐะนะป 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)
แกแแแแช แแแ แแแแ แแ แแฃแแแแขแ แแ แแก แฌแงแแ แแก แคแแแขแ แแก แแแฉแแแแแแแแ, แแแแ แ แแ แแฃแแแแขแ แแ แแก แฌแงแแ แแก แแแแแแแแแแ แแแแแ แ (แแแแแแแแแกแฌแแแแ, แ แแ แจแแงแแแแแแ แแ แแแแแกแแแแแแ แแแแแแ แแแแ แแฃแแแแแ). แแแกแแแ แแ แแฃแแแแขแ แแ แแก แแแแฆแแแแก แคแแแขแ แแก แแแฉแแแแแแแแ, แแแแแฎแ แแ แแก แแแแฆแแแแก แจแแงแแแแแก แแแแแ แ.
แงแแแแ แคแแแขแ แ แแแแแแจแแ แแแฃแแแ แแ แกแแแแแก แฌแงแแ แ แแแแแแจแแ แแแฃแแแ แแแแแก (แจแแแแแแแจแ แแแก แฃแแ แแแแ แขแแแแ แก แแแแแ แฅแแแแ). แ แแก แจแแแแแแแช แฉแแแแ แฎแแแก แฌแ แ แแฌแงแแแก แแฃแจแแแแแก, แแแแ แแ แแแแแแฃแขแแ แแก แแแแแแแแแแจแ แฏแแ แแ แแคแแ แ แแกแแแก - แฎแแแก แแแแแ แแขแแ แ แแแแแ แแฃแแแ แแ แฃแแ แแแแ แแฃแแแแแ แแแแแก แแแแแชแแแแ แจแแงแแแแแก แแแแแแแจแ. แขแแแแก แแแแแ แแ แแแแก แแแกแแฌแงแแแแ, แแฅแแแ แฃแแแ แแแฃแจแแแ แแแแแ แแขแแ แแก แคแแแขแ แแก แแแแแแ.
แฉแแแ แแแแแแฅแแแแ แแ แขแแแแแ (DTMF) แกแแแแแแก, แ แแแแแแช แจแแแกแแแแแแแ แขแแแแคแแแแ "1" แฆแแแแแแ แแแญแแ แแก. แแแแกแแแแแก แฉแแแ แแแงแแแแแ แคแฃแแฅแชแแแก ms_filter_call_method() แฉแแแ แแฃแฌแแแแแ MS_DTMF_GEN_PLAY แแแแแแก, แแ แแฃแแแแขแแ แแแแแแชแแแ แแแแก, แ แแแแแกแแช แฃแแแ แจแแแกแแแแแแแแแแก แแแแแ แแก แกแแแแแแ.
แ แฉแแแ แแฎแแแแ แแ แแแ แแแแก แจแแแแแแ:
$ gcc mstest2.c -o mstest2 `pkg-config mediastreamer --libs --cflags`
แแ แแแแฅแแชแ:
$ ./mstest2
แแ แแแ แแแแก แแแฌแงแแแแก แจแแแแแ แแแแแแฃแขแแ แแก แแแแแแแแจแ แแแแกแแแแ แแแแแ แฎแแแแแ แกแแแแแแก, แ แแแแแแช แจแแแแแแ แแ แ แขแแแแกแแแแ.
แฉแแแ แแแแจแแแแ แแ แแแแฃแจแแแ แฉแแแแ แแแ แแแแ แฎแแแก แฌแ แ. แฉแแแ แแแแฎแแ, แแฃ แ แแแแ แจแแแฅแแแแ แคแแแขแ แแก แแแกแขแแแชแแแแ, แ แแแแ แแแแแแแแจแแ แแ แแกแแแ แแ แ แแแแ แแแแแแแซแแฎแแ แแแแ แแแแแแแแ. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แฉแแแ แแแแงแแคแแแ แแแ แ แฉแแแแ แแแแแแแแ แแแแ แฌแแ แแแขแแแแ, แฉแแแ แแแแแช แฃแแแ แแแแแฅแชแแแ แงแฃแ แแแฆแแแ แแ แคแแฅแขแก, แ แแ แฉแแแแ แแ แแแ แแแ แแ แแแแแแกแฃแคแแแแก แแแแแงแแคแแ แแแฎแกแแแ แแแแก แแแกแแแแแแ. แฒจแแแแแแจแ
แฌแงแแ แ: www.habr.com