//============================================================================== // WsInput //------------------------------------------------------------------------------ void WsInput::init(Input* input) { UnusedParam(input); _instance = this; _isend = false; memset(_sendData,0,sizeof(_sendData)); memset(_press,0,sizeof(_press)); memset(_trigger,0,sizeof(_trigger)); memset(_release,0,sizeof(_release)); memset(_repeat,0,sizeof(_repeat)); memset(_recvData,0,sizeof(_recvData)); memset(_cavRot,0,sizeof(_cavRot)); memset(_cavCnt,0,sizeof(_cavCnt)); thread tmp = thread(WsInput::wsConnect,this); _thread.swap(tmp); }
LOCALPROC SubTickNotify(int SubTick) { #if 0 dbglog_writeCStr("ending sub tick "); dbglog_writeNum(SubTick); dbglog_writeReturn(); #endif #if EmASC ASC_SubTick(SubTick); #else #if MySoundEnabled && (CurEmMd != kEmMd_PB100) MacSound_SubTick(SubTick); #else UnusedParam(SubTick); #endif #endif }
//============================================================================== // wsCallBackData //------------------------------------------------------------------------------ int WsInput::wsCallBackData( libwebsocket_context *context, libwebsocket *wsi, libwebsocket_callback_reasons reason, void *user, void *in, size_t len) { UnusedParam(context); UnusedParam(len); switch(reason) { // 新規接続 case LWS_CALLBACK_ESTABLISHED: { } break; // クローズ case LWS_CALLBACK_PROTOCOL_DESTROY: { } break; // 送信処理d case LWS_CALLBACK_SERVER_WRITEABLE: { } break; // 受信処理 case LWS_CALLBACK_RECEIVE: { _instance->_mutex.lock(); #ifdef _IS_TEXT_ const char* test = (const char*)in; int playerID = test[0] - '0'; float b = atof(&test[2]); switch(test[1]) { case 'u': _instance->_recvData[playerID].isPush = false; break; case 'd': _instance->_recvData[playerID].isPush = true; break; case 'x': _instance->_recvData[playerID].rot.x = b; break; case 'y': _instance->_recvData[playerID].rot.y = b; break; case 'z': _instance->_recvData[playerID].rot.z = b; break; } #else RecvData* data = (RecvData*)in; memcpy(&_instance->_recvData[data->playerID],data,sizeof(RecvData)); #endif _instance->_mutex.unlock(); } break; } return 0; }