亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? v8.c

?? Linmodem is soft modem source code for embedded system
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  * V8 protocol handler *  * Copyright (c) 1999,2000 Fabrice Bellard. * * This code is released under the GNU General Public License version * 2. Please read the file COPYING to know the exact terms of the * license. *  * This implementation is totally clean room. It was written by * reading the ITU specification and by using basic signal processing * knowledge.   */#include "lm.h"static void V8_mod_init(V8_mod_state *s){    s->sample_rate = V8_SAMPLE_RATE;    /* ANSam tone: 2100 Hz, amplitude modulated at 15 Hz, with phase       reversal every 450 ms */    s->phase = 0;    s->phase_incr = (int) (PHASE_BASE * 2100.0 / s->sample_rate);    s->mod_phase = 0;    s->mod_phase_incr = (int) (PHASE_BASE * 15.0 / s->sample_rate);    s->phase_reverse_samples = (int) (s->sample_rate * 0.450);    s->phase_reverse_left = 0;    /* XXX: incorrect power */    s->amp = (int) (pow(10, s->tone_level / 20.0) * 32768.0);}static void V8_mod(V8_mod_state *s, s16 *samples, unsigned int nb){    int amp,i;    for(i=0;i<nb;i++) {        /* handle phase reversal every 450 ms */        if (s->phase_reverse_left == 0) {            s->phase_reverse_left = s->phase_reverse_samples;            s->phase += PHASE_BASE / 2;        }        amp = (dsp_cos(s->mod_phase) * (int)(0.2 * COS_BASE)) >> COS_BITS;        amp += COS_BASE; /* between 0.8 and 1.2 */        samples[i] = (amp * dsp_cos(s->phase)) >> COS_BITS;        s->mod_phase += s->mod_phase_incr;        s->phase += s->phase_incr;    }}/* Recognize the V8 ANSam tone. Some other tones (in particular V21   tone) may be added later. We compute the DFT for every interesting   frequency and do a threshold with the power. Not the best method,   but easy to implement and quite reliable. */static void V8_demod_init(V8_demod_state *s){    int i;    for(i=0;i<V8_N;i++) {        s->cos_tab[i] = (int) (cos( 2 * M_PI * i / V8_N) * COS_BASE);        s->sin_tab[i] = (int) (sin( 2 * M_PI * i / V8_N) * COS_BASE);    }    s->buf_ptr = 0;    s->v8_ANSam_detected = 0;}static void V8_demod(V8_demod_state *s, const s16 *samples, unsigned int nb){    int i, p0, p1;    for(i=0;i<nb;i++) {        s->buf[s->buf_ptr++] = samples[i];        if (s->buf_ptr >= V8_N) {            s->buf_ptr = 0;            dsp_sar_tab(s->buf, V8_N, 8);            p0 = dsp_norm2(s->buf, V8_N, 0);            p1 = compute_DFT(s->cos_tab, s->sin_tab, s->buf, DFT_COEF_2100, V8_N);            /* XXX: this test is incorrect (not homogenous) */            if ((p0 > 1000) && (p1 > (5*p0))) {                /* V8 tone recognized */                s->v8_ANSam_detected = 1;            }        }    }}/* V8 stream decoding */static void ci_decode(V8State *s){    int data = s->rx_data[0];    if (data == 0x83) {        printf("CI: data call\n");    } }/* CM or JM decoding */static void cm_decode(V8State *s){    u8 *p;    int c;    if (s->got_cm)        return;    if (s->cm_count > 0) {        /* we must receive two identical CM sequences */        if (s->cm_count == s->rx_data_ptr &&            !memcmp(s->cm_data, s->rx_data, s->rx_data_ptr)) {            /* got CM !! */            s->got_cm = 1;            /* decode it */            /* XXX: this decoding is sufficient for modulations, but               not exhaustive */            s->decoded_modulations = 0;            p = s->cm_data;            /* zero is used to indicate the end */            s->cm_data[s->cm_count] = 0;            c = *p++;            /* call function */            if ((c & 0xf8) != 0x80)                 return;            if (c != V8_CALL_FUNC_DATA)                return;            /* modulation */            c = *p++;            if ((c & 0xf8) != V8_MODN0)                 return;            if (c & V8_MODN0_V90)                s->decoded_modulations |= V8_MOD_V90;            if (c & V8_MODN0_V34)                s->decoded_modulations |= V8_MOD_V34;            c = *p++;            if ((c & 0x1c) == V8_EXT) {                /* ignored */                c = *p++;                if ((c & 0x1c) == V8_EXT) {                    if (c & V8_MODN2_V23)                        s->decoded_modulations |= V8_MOD_V23;                    if (c & V8_MODN2_V21)                        s->decoded_modulations |= V8_MOD_V21;                    /* skip other extensions */                    do {                        c = *p++;                    } while ((c & 0x1c) == V8_EXT);                }            }            return;        }    }                /* save the current CM sequence */    s->cm_count = s->rx_data_ptr;    memcpy(s->cm_data, s->rx_data, s->rx_data_ptr);}static void put_bit(void *opaque, int bit){    V8State *s = opaque;    int new_state, i;    /* wait ten ones & synchro */    s->bit_sync = ((s->bit_sync << 1) | bit) & ((1 << 20) - 1);    if (s->bit_sync == ((V8_TEN_ONES << 10) | V8_CI_SYNC)) {        new_state = V8_CI_SYNC;        goto data_init;    } else if (s->bit_sync == ((V8_TEN_ONES << 10) | V8_CM_SYNC)) {        new_state = V8_CM_SYNC;    data_init:        /* debug */        if (s->data_state == V8_CI_SYNC) {            printf("CI: ");        } else if (s->data_state == V8_CM_SYNC) {            if (s->calling)                printf("JM: ");            else                printf("CM: ");        }        for(i=0;i<s->rx_data_ptr;i++) printf(" %02x", s->rx_data[i]);        printf("\n");                /* decode previous sequence */        switch(s->data_state) {        case V8_CI_SYNC:            ci_decode(s);            break;        case V8_CM_SYNC:            cm_decode(s);            break;        }        s->data_state = new_state;        s->bit_buf = 0;        s->bit_cnt = 0;        s->rx_data_ptr = 0;    }        /* parse octets with 1 bit start, 1 bit stop */    if (s->data_state) {        s->bit_buf = ((s->bit_buf << 1) | bit) & ((1 << 10) - 1);        s->bit_cnt++;        /* start, stop ? */        if ((s->bit_buf & 0x201) == 0x001 && s->bit_cnt >= 10) {            int data;            /* store the available data */            data = (s->bit_buf >> 1) & 0xff;            printf("got data: %d %02x\n", s->data_state, data);            /* CJ detection */            if (data == 0) {                if (++s->data_zero_count == 3) {                    s->got_cj = 1;                    printf("got CJ\n");                }            } else {                s->data_zero_count = 0;            }            if (s->rx_data_ptr < (sizeof(s->rx_data)-1)) {                s->rx_data[s->rx_data_ptr++] = data;            }                        s->bit_cnt = 0;        }    }}static void v8_decode_init(V8State *s){    V21_demod_init(&s->v21_rx, s->calling, put_bit, s);    s->data_state = 0;    s->bit_sync = 0;    s->cm_count = 0;    s->got_cm = 0;    s->got_cj = 0;    s->data_zero_count = 0;    s->rx_data_ptr = 0;}static int get_bit(void *opaque){    V8State *s = opaque;    int bit;    bit = sm_get_bit(&s->tx_fifo);    if (bit < 0)        bit = 1;    return bit;}static void v8_put_byte(V8State *s, int data){    /* insert start & stop bits */    sm_put_bits(&s->tx_fifo, ((data & 0xff) << 1) | 1, 10);}void V8_init(V8State *sm, int calling, int mod_mask){    sm->debug_laststate = -1;    sm->calling = calling;    if (sm->calling) {        sm->state = V8_WAIT_1SECOND;        sm_set_timer(&sm->v8_start_timer, 1000);    } else {        /* wait 200 ms */        sm_set_timer(&sm->v8_connect_timer, 200);        sm->state = V8_WAIT;    }    sm_init_fifo(&sm->rx_fifo, sm->rx_buf, sizeof(sm->rx_buf));    sm_init_fifo(&sm->tx_fifo, sm->tx_buf, sizeof(sm->tx_buf));    sm->modulation_mask = mod_mask;}/* send CM or JM */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费电影| 国产婷婷色一区二区三区四区 | 国产日韩欧美亚洲| 一区二区三区在线观看欧美| 精品一区二区三区免费观看| 色综合天天综合色综合av| 久久夜色精品一区| 日韩专区中文字幕一区二区| 91在线丨porny丨国产| 久久久精品免费免费| 日韩1区2区3区| 欧美亚洲禁片免费| 最新国产精品久久精品| 国产福利91精品| 精品免费国产一区二区三区四区| 亚洲第一搞黄网站| 91视频国产观看| 亚洲天堂精品视频| 成人国产精品免费网站| 久久久久久久久久电影| 国产在线乱码一区二区三区| 91精品国产免费| 日本不卡的三区四区五区| 欧美性videosxxxxx| 亚洲美女免费视频| 99这里只有精品| 亚洲日本中文字幕区| www.亚洲免费av| 国产精品乱人伦| 成人18视频日本| 亚洲欧洲制服丝袜| 色国产精品一区在线观看| 亚洲品质自拍视频| 欧美性欧美巨大黑白大战| 尤物在线观看一区| 欧美日韩在线亚洲一区蜜芽| 一区二区三区在线视频免费观看| 91丨九色丨国产丨porny| 亚洲欧洲在线观看av| 99久久婷婷国产精品综合| 亚洲欧洲成人精品av97| 91啪亚洲精品| 偷拍自拍另类欧美| 日韩精品一区二区三区在线 | 99久久er热在这里只有精品15 | 国产精品对白交换视频| www.欧美亚洲| 一区二区三区视频在线看| 欧美主播一区二区三区| 天天色综合天天| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品一卡二| 国产精品色噜噜| 欧美亚洲一区二区三区四区| 日韩和欧美一区二区三区| 精品捆绑美女sm三区| 成人高清伦理免费影院在线观看| 亚洲欧美日韩人成在线播放| 欧美乱妇15p| 国产精品一二三四| 亚洲人成在线播放网站岛国 | 在线看国产一区| 麻豆国产欧美日韩综合精品二区| 久久久影院官网| 欧美午夜精品久久久久久孕妇 | 国产女人aaa级久久久级| 色先锋资源久久综合| 毛片av一区二区三区| 国产精品福利一区二区| 日韩欧美一级二级三级久久久| 成人久久视频在线观看| 亚洲成人精品在线观看| 亚洲国产成人一区二区三区| 欧美裸体一区二区三区| 国产凹凸在线观看一区二区| 夜夜嗨av一区二区三区网页| 久久精品亚洲乱码伦伦中文| 欧美日韩三级在线| 成人精品视频一区| 老司机午夜精品| 一二三四区精品视频| 国产色爱av资源综合区| 欧美乱妇23p| 91久久免费观看| 成人av网站在线观看免费| 免费视频最近日韩| 亚洲国产美国国产综合一区二区| 国产日产欧产精品推荐色 | 国产精品一区二区无线| 日本欧美大码aⅴ在线播放| 亚洲美女在线一区| 国产精品久久毛片av大全日韩| 日韩一区二区电影在线| 日本精品免费观看高清观看| 成人免费看黄yyy456| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲最新视频在线观看| 国产视频一区二区在线| 日韩限制级电影在线观看| 欧美喷水一区二区| 欧美性感一区二区三区| 91丨porny丨中文| 97se狠狠狠综合亚洲狠狠| 成人免费视频免费观看| 国产成人免费av在线| 国产乱码一区二区三区| 精品一区二区三区视频在线观看| 日韩精彩视频在线观看| 欧美a级一区二区| 青青草97国产精品免费观看 | 久久精品99国产精品日本| 一区二区三区欧美激情| 亚洲老司机在线| 亚洲精品一二三| 亚洲精品国产无天堂网2021| 亚洲色图.com| 亚洲与欧洲av电影| 亚欧色一区w666天堂| 三级亚洲高清视频| 日韩福利视频网| 国产精品一区二区三区99| 国产精品一区久久久久| 欧美日韩一区二区不卡| 91精品欧美综合在线观看最新| 这里只有精品99re| 精品国产网站在线观看| 国产日产欧美一区| 亚洲视频精选在线| 亚洲观看高清完整版在线观看 | 香蕉久久夜色精品国产使用方法| 亚洲成人自拍网| 奇米影视7777精品一区二区| 美女爽到高潮91| 成人教育av在线| 色噜噜夜夜夜综合网| 在线91免费看| 久久久久久一二三区| 国产精品国产精品国产专区不片| 亚洲精品一二三区| 久久99这里只有精品| 成人污视频在线观看| 欧美日韩综合在线| 精品国产a毛片| 亚洲精品亚洲人成人网在线播放| 日韩国产欧美在线观看| 国产盗摄一区二区| 欧美性一二三区| 亚洲精品在线一区二区| 亚洲欧美日韩在线不卡| 蜜桃av一区二区| 北条麻妃国产九九精品视频| 欧美精品免费视频| 国产精品女人毛片| 秋霞电影一区二区| 日本福利一区二区| 26uuu欧美| 亚洲v精品v日韩v欧美v专区| 高清av一区二区| 欧美放荡的少妇| 《视频一区视频二区| 经典三级一区二区| 欧美在线视频你懂得| 国产色综合久久| 婷婷成人综合网| 91麻豆高清视频| 久久久国产午夜精品| 五月天久久比比资源色| 99久久综合色| 久久久精品综合| 日本不卡1234视频| 欧洲人成人精品| 国产精品女主播av| 国产精品自在在线| 欧美一区二区在线视频| 亚洲一区欧美一区| 色哟哟一区二区在线观看| 2021国产精品久久精品| 99精品久久久久久| 欧美成人video| 肉丝袜脚交视频一区二区| 色诱亚洲精品久久久久久| 国产精品麻豆久久久| 国产成人精品免费视频网站| 日韩欧美第一区| 蜜桃视频一区二区三区| 欧美日韩一二区| 亚洲国产精品一区二区久久恐怖片| 成av人片一区二区| 国产性天天综合网| 国产一区二区在线看| 日韩免费一区二区| 久久成人免费日本黄色| 欧美日韩国产成人在线91| 一区二区三区成人在线视频| 91啪九色porn原创视频在线观看| 一区二区中文视频| 日本久久精品电影| 亚洲成人三级小说| 在线播放亚洲一区| 麻豆精品国产传媒mv男同|