青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 74, 文章 - 0, 評論 - 26, 引用 - 0
數據加載中……

system V消息機制

#ifndef MSG_H
#define MSG_H
//msgid
#define LISTEN_THREAD??7
#define CENTER_THREAD??0
#define SEND_THREAD???2
#define REV_THREAD???3
#define TIME_THREAD???4
//lp
#define EXIT????0
#define SEND_SGIP_SUBMIT?1
#define SEND_SGIP_BIND
#define SEND_SGIP_R
#define SEND_SGIP_UNBIND
#define SEND_SGIP_UNBIND_R
#define REV_SGIP_SOCKET
//wp
#define SEND_SUCCESS
#define PACK_FAIL
#define SEND_FAIL
enum mgnt_cmd_type
{
?event_login???????? = 0,
??event_logout,
??event_sip_init_para,
??event_log_init_para,
??event_sip_clean,
??event_set_dtmf_mode,
??event_set_dhcp,
??event_set_pppoe,
??
??event_pstn_call_out,
??event_sip_call_out,
??event_answer_sipcall,
??event_release_sipcall,
??event_loadBMP_init,
??
??
??event_pstn_call_in=20,
??event_sip_call_in,
??event_remote_release_call,
??event_remote_establish_call,
??event_remote_cancelcall,
??event_login_return,
??event_remote_ignore,

??event_set_pstn_ring,
??event_set_sip_ring,
??event_set_alarm_ring,
??event_set_ring_volume
??
};

typedef struct msgbuf
{
?long???msgtype;
?unsigned long?msgid;
?unsigned long?lp;
?unsigned long?wp;
}MSGBuf, *pMSGBuf;


int vvMSGSend(long thread_id, unsigned long msgid, unsigned long lp, unsigned long wp);
int vvMSGRecv(long thread_id, struct msgbuf *msg, int is_wait);


#ifndef _WINDOWS

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <unistd.h>

#define?MSG_FILE_NAME??? "/rw/"????? //"/mnt/"
#define MSG_FLAG???(IPC_CREAT? | 00666)
//| IPC_EXCL
?


typedef struct sendMsg
{
?int sd;
?void *content;
}SendMsg, *pSendMsg;


#endif

#endif //MSG_H





#include "vvmsg.h"
#include <ps_log.h>

#ifndef _WINDOWS
#include <phone_Interface.h>
#include <pthread.h>
#include <basegdi.h>
#include <keyboard.h>
//#include "hash.h"
extern? pthread_t g_incomingthread;
//extern? hash_table table;
#endif

?

int vvMSGSend(long thread_id, unsigned long msgid, unsigned long lp, unsigned long wp)
{?
?struct msgbuf bmsg;
#ifndef _WINDOWS
?key_t key;

?int msg_id;
?bmsg.msgtype = thread_id;
?bmsg.msgid = msgid;
?bmsg.lp = lp;
?bmsg.wp = wp;

?if((key = ftok(MSG_FILE_NAME,'a')) == -1)
?{
??return -1;
?}

?if((msg_id = msgget(key,MSG_FLAG)) == -1)
?{
??return -1;
?}

?if (msgsnd(msg_id, &bmsg, sizeof(struct msgbuf), IPC_NOWAIT) == -1)
?{
??return -1;
?}
#endif
?return 1;

}

int vvMSGRecv(long thread_id, struct msgbuf *msg, int is_wait)
{
?#ifndef _WINDOWS
?key_t key;??
?int msg_id;
?if((key = ftok(MSG_FILE_NAME,'a')) == -1)
?{
??printf("Recv msg error 1!\n");
??return -1;
?}
?if((msg_id = msgget(key,MSG_FLAG)) == -1)
?{
??printf("Recv msg error 2!\n");
??return -1;
?}
?if (is_wait != 1)
?{
??if (msgrcv(msg_id, msg, sizeof(struct msgbuf), thread_id, IPC_NOWAIT) == -1)
??{
???printf("Recv msg error 3!\n");
???return -1;
??}?
?}
?else
?{
??if (msgrcv(msg_id, msg, sizeof(struct msgbuf), thread_id, 0) == -1)
??{
???//printf("Recv msg error 4!\n");
???return -1;
??}
?}
??#endif
?return 1;

}

void *skype_thread_start(void *arg)
{
?#ifndef _WINDOWS
?MSGBuf msg;
?pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,0);//設置線程屬性
?pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,0);
?for (;;)
?{
??pthread_testcancel();//設置取消點
??if (vvMSGRecv((long)g_incomingthread, &msg, 1) == -1)
???continue;
??
??// analysis the message
??switch (msg.msgid)
??{
???ps_show_str(log_DEBUG, "vvmsg event!!!!!!!!!!!!!!!%d\r\n", msg.msgid);
??case event_login:
???{
????userLogin();
????
???}
???break;
??case event_logout:
???{
????userLogout();
???}
??case event_sip_clean:
???{
????SipClean();
???}
???break;
??case event_sip_init_para:
???{
????ps_show_str(log_DEBUG, "event before################UpdateSipInitPara\r\n");
????UpdateSipInitPara();
????ps_show_str(log_DEBUG, "event after##################UpdateSipInitPara\r\n");
???}
???break;
??case event_log_init_para:
???{
????UpdateLogInitPara();
???}
???break;
??case event_set_dtmf_mode:
???{
????int i = (int)msg.lp;
????ps_show_str(log_DEBUG, "event_set_dtmf_mode########################%d\r\n", i);
????SetDTMFMode(i);
???}
???break;
??case event_set_dhcp:
???{
????SetDHCP();
???}
???break;
??case event_set_pppoe:
???{
????SetPPPOE();
???}
???break;

??case event_pstn_call_out:
???{
????pstncall((char*)msg.lp);
???}
???break;
??case event_sip_call_out:
???{
????
????sipcall((char*)msg.lp);
???}
???break;

??case event_answer_sipcall:
???{
????callmgr_answercall((LINE_ID_T *)msg.lp);
???}
???break;
??????? case event_release_sipcall:
???{
????callmgr_releasecall((LINE_ID_T *)msg.lp);
???}
???break;
??case event_loadBMP_init:
???{
????CreateSysBmp();
????
???}
???break;
???

?

?

?

?

?

?

?

??case event_pstn_call_in:
???{
????LINE_ID_T *line = (LINE_ID_T *)msg.wp;
????sipcome_create(line);
???}
???break;
??case event_sip_call_in:
???{
????LINE_ID_T *line = (LINE_ID_T *)msg.wp;
????sipcome_create(line);
???}
???break;
?
??case event_remote_establish_call:
???{
????
????LINE_ID_T *line = (LINE_ID_T *)msg.wp;
????pstnchat_create(line);
????if(g_Hwnd[HWND_CALLOUT]!=0)
????calling_destroy(g_Hwnd[HWND_CALLOUT]);
????
???}
???break;
??case event_remote_cancelcall:
???{
????if(g_Hwnd[HWND_CALLIN]!=0)
???SendMessage(g_Hwnd[HWND_CALLIN],MSG_KEYDOWN,KEY_SW_RSK,0);
???}
???break;
??case event_remote_release_call:
???{
????if(g_Hwnd[HWND_CHAT]!=0)
????SendMessage(g_Hwnd[HWND_CHAT],MSG_KEYDOWN,KEY_SW_RSK,0);
???}
???break;
??case event_login_return:
???{
????printf("sfds0000000000000000000000000000000dssssssss^^^^^^^^^^^^^^^^^\r\n");
????if(g_Hwnd[HWND_MAINSCREEN]!=0)
????{
?????UpdateWindow(g_Hwnd[HWND_MAINSCREEN],1);
????//?SetFocusChild(g_Hwnd[HWND_MAINSCREEN]);
????//?ShowWindow(g_Hwnd[HWND_MAINSCREEN], SW_SHOW);
????}
???}
???break;
??case event_remote_ignore:
???{
????if(g_Hwnd[HWND_CALLOUT]!=0)
????SendMessage(g_Hwnd[HWND_CALLOUT],MSG_KEYDOWN,KEY_SW_RSK,0);?
???}
???break;
??case event_set_pstn_ring:
???{
????SetPstnRing((int)msg.lp);
???}
???break;
??case event_set_sip_ring:
???{
????SetSipRing((int)msg.lp);
???}
???break;
??case event_set_ring_volume:
???{
????SetRingVolume((int)msg.lp);
???}
???break;
??}

?}
?#endif
}

附(創建線程):if (pthread_create(&g_incomingthread, NULL, skype_thread_start, NULL))
??return -1;

posted on 2006-06-27 09:23 井泉 閱讀(305) 評論(0)  編輯 收藏 引用 所屬分類: c code

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲深夜av| 欧美精品一线| 欧美成人在线免费观看| 久久精品亚洲一区| 久久人人97超碰精品888| 久久久久久日产精品| 免费成人av在线| 亚洲国产视频一区二区| 日韩午夜精品视频| 亚洲一区高清| 老牛嫩草一区二区三区日本| 欧美a级片一区| 欧美视频官网| 激情欧美亚洲| 亚洲天堂免费观看| 久久亚洲美女| 日韩亚洲精品在线| 香蕉久久夜色精品国产| 免费成人在线视频网站| 欧美图区在线视频| 精品成人a区在线观看| 99精品欧美一区| 久久久无码精品亚洲日韩按摩| 欧美高清视频一区二区| 一区二区三区产品免费精品久久75 | 日韩午夜激情| 欧美在线首页| 亚洲精品乱码久久久久久按摩观| 亚洲一卡久久| 欧美国产一区视频在线观看| 国产精品一区二区久久精品| 亚洲福利小视频| 欧美在线免费观看视频| 亚洲日本在线视频观看| 久久精品综合一区| 国产精品视频网址| 一本色道久久综合精品竹菊| 久久人人九九| 欧美在线免费视屏| 国产精品无码专区在线观看 | 亚洲一本视频| 国产亚洲午夜| 一区二区欧美精品| 欧美国产欧美综合| 欧美一二三区精品| 国产精品久久久久久久久婷婷 | 国产综合色精品一区二区三区| 亚洲毛片在线观看| 欧美成人精品高清在线播放| 亚洲欧美资源在线| 国产精品普通话对白| 亚洲视频第一页| 日韩视频精品| 欧美日韩精品免费观看视一区二区| 在线观看日韩精品| 老鸭窝亚洲一区二区三区| 翔田千里一区二区| 国产欧美一区二区精品婷婷| 亚洲免费视频中文字幕| 99在线热播精品免费99热| 欧美日韩理论| 午夜精品久久久久久久99热浪潮 | 一本久久综合亚洲鲁鲁| 欧美精品一线| 亚洲一区二区动漫| 亚洲婷婷综合久久一本伊一区| 国产精品国产精品国产专区不蜜| 夜夜嗨一区二区三区| 亚洲免费观看| 国产精品丝袜xxxxxxx| 性欧美video另类hd性玩具| 亚洲欧美日韩中文播放| 国产在线视频不卡二| 蜜桃av一区二区三区| 欧美成人资源网| 在线视频你懂得一区二区三区| 一区二区激情小说| 国产亚洲免费的视频看| 欧美成人r级一区二区三区| 欧美成人一区二区三区片免费| 99xxxx成人网| 欧美在线免费视屏| 亚洲人人精品| 一区二区三区毛片| 精品99视频| 99成人在线| 国产在线拍偷自揄拍精品| 欧美成人四级电影| 欧美香蕉视频| 欧美国产亚洲精品久久久8v| 欧美精品一区在线播放| 欧美在线免费观看亚洲| 欧美成人午夜激情| 久久aⅴ国产紧身牛仔裤| 免费观看日韩| 夜夜精品视频一区二区| 日韩视频免费观看| 国产乱人伦精品一区二区| 久久一区二区三区av| 欧美成人综合| 久久久久一区二区| 欧美日韩黄色一区二区| 久久香蕉国产线看观看av| 欧美精品成人一区二区在线观看| 午夜宅男欧美| 欧美日本韩国一区| 久久综合九色综合网站| 欧美午夜久久久| 欧美国产日韩免费| 国产婷婷色一区二区三区四区| 亚洲国产导航| 国产亚洲日本欧美韩国| 亚洲精品在线视频观看| 亚洲二区免费| 久久精品国产一区二区三区| 亚洲一级二级| 欧美精品久久一区| 亚洲高清免费视频| 禁断一区二区三区在线| 亚洲欧美日韩国产综合精品二区| 一本久久知道综合久久| 美国十次成人| 欧美电影免费观看高清完整版| 国产日韩欧美在线播放| 一本色道久久综合亚洲精品按摩| 在线精品国产欧美| 久久成人精品无人区| 午夜欧美视频| 国产精品欧美一区二区三区奶水 | 亚洲伦理在线观看| 噜噜爱69成人精品| 欧美不卡福利| 亚洲黄色在线看| 欧美成人精品1314www| 美女主播一区| 亚洲成色www8888| 美女网站在线免费欧美精品| 久久躁日日躁aaaaxxxx| 狠狠噜噜久久| 每日更新成人在线视频| 亚洲福利视频二区| 99精品视频网| 欧美视频日韩视频| 亚洲专区欧美专区| 久久精品国产99| 亚洲国产成人精品久久久国产成人一区| 久久av红桃一区二区小说| 久久一本综合频道| 亚洲第一区在线| 欧美精品亚洲| 亚洲午夜精品一区二区| 欧美中文在线观看| 亚洲福利一区| 欧美视频在线免费看| 亚洲一区高清| 欧美h视频在线| 一区二区精品国产| 国产欧美日韩一区| 久久综合给合| av成人免费在线| 一本色道久久综合亚洲精品高清| 国产精品蜜臀在线观看| 日韩网站在线观看| 亚洲视频网在线直播| 国产精品午夜电影| 毛片av中文字幕一区二区| 久久久久看片| 亚洲一区区二区| 亚洲国产精品999| 亚洲影院一区| 亚洲精品久久久蜜桃 | 中日韩美女免费视频网址在线观看 | 亚洲国产你懂的| 欧美日韩在线免费| 亚洲春色另类小说| 国产欧美日韩精品一区| 欧美激情成人在线视频| 欧美日韩中文字幕日韩欧美| 久久噜噜亚洲综合| 国产精品日产欧美久久久久| 亚洲激情国产精品| 黄色成人片子| 午夜精品成人在线| 欧美一区二区三区免费大片| 欧美午夜宅男影院在线观看| 亚洲人成毛片在线播放| 日韩一级精品| 欧美日韩精品伦理作品在线免费观看 | 亚洲大片免费看| 久久国产视频网| 免费视频亚洲| 99精品福利视频| 欧美少妇一区| 午夜一区二区三视频在线观看| 欧美激情2020午夜免费观看| 猛干欧美女孩| 亚洲国产精品一区二区www在线| 欧美在线一级va免费观看| 亚洲尤物视频在线| 欧美午夜无遮挡|