TaoStatus TaoPhoneComponentAdaptor::getExtSpeakerNominalVolume(TaoMessage& rMsg) { int volume = 0; int groupType = atoi(rMsg.getArgList()); mpPhoneTask->taoGetNominalVolume(volume, groupType); if (volume > 10) volume = 10; if (volume < 0) volume = 0; char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", volume); rMsg.setMsgSubType(TaoMessage::RESPONSE_PHONECOMPONENT); rMsg.setArgCnt(1); rMsg.setArgList(buff); if (mpSvrTransport->postMessage(rMsg)) { return TAO_SUCCESS; } return TAO_FAILURE; }
TaoStatus TaoPhoneComponentAdaptor::getDisplayContrast(TaoMessage& rMsg) { int argCnt = rMsg.getArgCnt(); if (argCnt != 1) return TAO_FAILURE; #ifdef _VXWORKS int nominal = 0; if (OS_SUCCESS == MpCodec_getLCDContrastRange(mLCDLow, mLCDHigh, nominal)) { mLCDContrast = MpCodec_getLCDContrast(); mLCDOffset = mLCDLow - 1; osPrintf("--- get LCD contrast level %d ---\n", mLCDContrast); } UtlString arg; char buff[MAXIMUM_INTEGER_STRING_LENGTH]; int level = mLCDContrast - mLCDOffset; if (level < 1) level = 1; sprintf(buff, "%d", level); arg = buff + TAOMESSAGE_DELIMITER; sprintf(buff, "%d", 1); arg += buff + TAOMESSAGE_DELIMITER; sprintf(buff, "%d", (mLCDHigh - mLCDOffset)); arg += buff + TAOMESSAGE_DELIMITER; sprintf(buff, "%d", (nominal - mLCDOffset)); arg += buff; rMsg.setMsgSubType(TaoMessage::RESPONSE_PHONECOMPONENT); rMsg.setArgCnt(4); rMsg.setArgList(arg.data()); if (mpSvrTransport->postMessage(rMsg)) return TAO_SUCCESS; #endif return TAO_FAILURE; }
TaoStatus TaoPhoneComponentAdaptor::getRingerVolume(TaoMessage& rMsg) { int volume = 0; mpPhoneTask->taoGetVolume(volume, PtComponentGroup::RINGER); char buff[MAXIMUM_INTEGER_STRING_LENGTH]; sprintf(buff, "%d", volume); rMsg.setMsgSubType(TaoMessage::RESPONSE_PHONECOMPONENT); rMsg.setArgCnt(1); rMsg.setArgList(buff); if (mpSvrTransport->postMessage(rMsg)) { return TAO_SUCCESS; } return TAO_FAILURE; }
TaoStatus TaoPhoneComponentAdaptor::getMicGain(TaoMessage& rMsg) { if (rMsg.getArgCnt() != 1) return TAO_FAILURE; UtlString arg = rMsg.getArgList(); int groupType = atoi(arg.data()); int gain = mpPhoneTask->taoGetMicGain(groupType); char buf[32]; sprintf(buf, "%d", gain); arg += TAOMESSAGE_DELIMITER + buf; rMsg.setArgCnt(2); rMsg.setArgList(arg); rMsg.setMsgSubType(TaoMessage::RESPONSE_PHONECOMPONENT); if (mpSvrTransport->postMessage(rMsg)) return TAO_SUCCESS; return TAO_FAILURE; }
UtlBoolean TaoPhoneComponentAdaptor::handleMessage(OsMsg& rMsg) { UtlBoolean handled = FALSE; int msgType = ((TaoMessage&)rMsg).getMsgSubType(); if( TaoMessage::REQUEST_PHONECOMPONENT == msgType) { switch (((TaoMessage&)rMsg).getCmd()) { case TaoMessage::BUTTON_PRESS: if (TAO_SUCCESS == buttonPress((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::BUTTON_UP: if (TAO_SUCCESS == buttonUp((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::BUTTON_DOWN: if (TAO_SUCCESS == buttonDown((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::BUTTON_GET_INFO: if (TAO_SUCCESS == getButtonInfo((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::BUTTON_SET_INFO: if (TAO_SUCCESS == setButtonInfo((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::BUTTON_GET_PHONELAMP: if (TAO_SUCCESS == getAssociatedPhoneLamp((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::HOOKSWITCH_GET_STATE: if (TAO_SUCCESS == getHookswState((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::HOOKSWITCH_SET_STATE: if (TAO_SUCCESS == setHookswState((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::HOOKSWITCH_GET_CALL: if (TAO_SUCCESS == getHookswCall((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::LAMP_GET_MODE: if (TAO_SUCCESS == getHookswCall((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::LAMP_GET_SUPPORTED_MODES: if (TAO_SUCCESS == getHookswCall((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::LAMP_GET_BUTTON: if (TAO_SUCCESS == getHookswCall((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::LAMP_SET_MODE: if (TAO_SUCCESS == setLampMode((TaoMessage&)rMsg)) { handled = TRUE; } break; /* ----------------------------- PHONEDISPALY --------------------------------- */ case TaoMessage::DISPLAY_GET_DISPLAY: if (TAO_SUCCESS == getDisplay((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::DISPLAY_GET_ROWS: if (TAO_SUCCESS == getDisplayRows((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::DISPLAY_GET_COLS: if (TAO_SUCCESS == getDisplayColumns((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::DISPLAY_SET_DISPLAY: if (TAO_SUCCESS == setDisplay((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::DISPLAY_GET_CONTRAST: if (TAO_SUCCESS == getDisplayContrast((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::DISPLAY_SET_CONTRAST: if (TAO_SUCCESS == setDisplayContrast((TaoMessage&)rMsg)) { handled = TRUE; } break; /* ----------------------------- PHONEMIC --------------------------------- */ case TaoMessage::MIC_GET_GAIN: if (TAO_SUCCESS == getMicGain((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::MIC_SET_GAIN: if (TAO_SUCCESS == setMicGain((TaoMessage&)rMsg)) { handled = TRUE; } break; /* ----------------------------- PHONERINGER --------------------------------- */ case TaoMessage::RINGER_SET_INFO: if (TAO_SUCCESS == setRingerInfo((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_SET_PATTERN: if (TAO_SUCCESS == setRingerPattern((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_SET_VOLUME: if (TAO_SUCCESS == setRingerVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_GET_INFO: if (TAO_SUCCESS == getRingerInfo((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_GET_PATTERN: if (TAO_SUCCESS == getRingerPattern((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_GET_VOLUME: if (TAO_SUCCESS == getRingerVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_GET_MAX_PATTERN_INDEX: if (TAO_SUCCESS == getMaxRingPatternIndex((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_GET_NUMBER_OF_RINGS: if (TAO_SUCCESS == getNumberOfRings((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::RINGER_IS_ON: if (TAO_SUCCESS == isRingerOn((TaoMessage&)rMsg)) { handled = TRUE; } break; /* ----------------------------- PHONESPEAKER --------------------------------- */ case TaoMessage::SPEAKER_SET_VOLUME: if (TAO_SUCCESS == setSpeakerVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::SPEAKER_GET_VOLUME: if (TAO_SUCCESS == getSpeakerVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::SPEAKER_GET_NOMINAL_VOLUME: if (TAO_SUCCESS == getSpeakerNominalVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; /* ----------------------------- PHONEEXTSPEAKER --------------------------------- */ case TaoMessage::EXTSPEAKER_SET_VOLUME: if (TAO_SUCCESS == setExtSpeakerVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::EXTSPEAKER_GET_VOLUME: if (TAO_SUCCESS == getExtSpeakerVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::EXTSPEAKER_GET_NOMINAL_VOLUME: if (TAO_SUCCESS == getExtSpeakerNominalVolume((TaoMessage&)rMsg)) { handled = TRUE; } break; /* ----------------------------- PHONEGROUP --------------------------------- */ case TaoMessage::PHONEGROUP_ACTIVATE: if (TAO_SUCCESS == activateGroup((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::PHONEGROUP_DEACTIVATE: if (TAO_SUCCESS == deactivateGroup((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::PHONEGROUP_GET_COMPONENTS: if (TAO_SUCCESS == getGroupComponents((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::PHONEGROUP_GET_DESCRIPTION: if (TAO_SUCCESS == getGroupDescription((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::PHONEGROUP_GET_TYPE: if (TAO_SUCCESS == getGroupType((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::PHONEGROUP_IS_ACTIVATED: if (TAO_SUCCESS == isGroupActivated((TaoMessage&)rMsg)) { handled = TRUE; } break; case TaoMessage::COMPONENT_RESULT: if (TAO_SUCCESS == returnResult((TaoMessage&)rMsg)) { handled = TRUE; } break; default: break; } } else if (TaoMessage::RESPONSE_PHONECOMPONENT == msgType) { if (TAO_SUCCESS == returnResult((TaoMessage&)rMsg)) handled = TRUE; } if (!handled) { TaoMessage* pMsg = (TaoMessage*) &rMsg; pMsg->setArgCnt(1); pMsg->setArgList("-1"); if (mpSvrTransport->postMessage(*pMsg)) handled = TRUE; } return handled; }