示例#1
0
char* getStkQueuedEventNotify(RIL_Token t) {
#if (SIM_COUNT >= 2)
#if (SIM_COUNT >= 4) /* Gemini plus 4 SIM*/
    if (RIL_CHANNEL_SET4_OFFSET <= RIL_queryMyChannelId(t))
        return pEvent_notify[3];
    else
#endif
#if (SIM_COUNT >= 3) /* Gemini plus 3 SIM*/
    if (RIL_CHANNEL_SET3_OFFSET <= RIL_queryMyChannelId(t))
        return pEvent_notify[2];
    else
#endif
    if (RIL_CHANNEL_OFFSET <= RIL_queryMyChannelId(t))
        return pEvent_notify[1];
    else
        return pEvent_notify[0];
#else
    return pEvent_notify[0];
#endif
}
示例#2
0
bool getStkEventNotifyQueuedFlag(RIL_Token t) {
    LOGD("getStkEventNotifyQueuedFlag[%d][%d][%d][%d].", aIs_event_notify_queued[0],
    	   aIs_event_notify_queued[1], aIs_event_notify_queued[2], aIs_event_notify_queued[3]);
#if (SIM_COUNT >= 2)
#if (SIM_COUNT >= 4) /* Gemini plus 4 SIM*/
    if (RIL_CHANNEL_SET4_OFFSET <= RIL_queryMyChannelId(t))
        return aIs_event_notify_queued[3];
    else
#endif
#if (SIM_COUNT >= 3) /* Gemini plus 3 SIM*/
    if (RIL_CHANNEL_SET3_OFFSET <= RIL_queryMyChannelId(t))
        return aIs_event_notify_queued[2];
    else
#endif
    if (RIL_CHANNEL_OFFSET <= RIL_queryMyChannelId(t))
        return aIs_event_notify_queued[1];
    else
        return aIs_event_notify_queued[0];
#else
    return aIs_event_notify_queued[0];
#endif
}
示例#3
0
void setStkEventNotifyQueuedFlagByTk(RIL_Token t, bool flag) {
#if (SIM_COUNT >= 2)
#if (SIM_COUNT >= 4) /* Gemini plus 4 SIM*/
    if (RIL_CHANNEL_SET4_OFFSET <= RIL_queryMyChannelId(t))
	       aIs_event_notify_queued[3] = flag;
    else
#endif
#if (SIM_COUNT >= 3) /* Gemini plus 3 SIM*/
    if (RIL_CHANNEL_SET3_OFFSET <= RIL_queryMyChannelId(t))
        aIs_event_notify_queued[2] = flag;
    else
#endif
    if (RIL_CHANNEL_OFFSET <= RIL_queryMyChannelId(t))
        aIs_event_notify_queued[1] = flag;
    else
        aIs_event_notify_queued[0] = flag;
#else
    aIs_event_notify_queued[0] = flag;
#endif
    LOGD("setStkEventNotifyQueuedFlagByTk[%d][%d][%d][%d].", aIs_event_notify_queued[0],
            aIs_event_notify_queued[1], aIs_event_notify_queued[2], aIs_event_notify_queued[3]);
}
示例#4
0
char* getStkQueuedProactivCmd(RIL_Token t)
{
    LOGD("getStkQueuedProactivCmd [simcount: %d][chId: %d].", SIM_COUNT, RIL_queryMyChannelId(t));
#if (SIM_COUNT >= 2)
#if (SIM_COUNT >= 4) /* Gemini plus 4 SIM*/
    if (RIL_CHANNEL_SET4_OFFSET <= RIL_queryMyChannelId(t))
        return pProactive_cmd[3];
    else
#endif
#if (SIM_COUNT >= 3) /* Gemini plus 3 SIM*/
    if (RIL_CHANNEL_SET3_OFFSET <= RIL_queryMyChannelId(t))
        return pProactive_cmd[2];
    else
#endif
    if (RIL_CHANNEL_OFFSET <= RIL_queryMyChannelId(t))
        return pProactive_cmd[1];
    else
        return pProactive_cmd[0];
#else
    return pProactive_cmd[0];
#endif
}
示例#5
0
void setStkServiceRunningFlagByTk(RIL_Token t, bool flag)
{
#if (SIM_COUNT >= 2)
#if (SIM_COUNT >= 4) /* Gemini plus 4 SIM*/
    if (RIL_CHANNEL_SET4_OFFSET <= RIL_queryMyChannelId(t))
	    aIs_stk_service_running[3] = flag;
    else
#endif
#if (SIM_COUNT >= 3) /* Gemini plus 3 SIM*/
    if (RIL_CHANNEL_SET3_OFFSET <= RIL_queryMyChannelId(t))
        aIs_stk_service_running[2] = flag;
    else
#endif
    if (RIL_CHANNEL_OFFSET <= RIL_queryMyChannelId(t))
        aIs_stk_service_running[1] = flag;
    else
        aIs_stk_service_running[0] = flag;
#else
    aIs_stk_service_running[0] = flag;
#endif
    LOGD("setStkServiceRunningFlagByTk[%d][%d][%d][%d].", aIs_stk_service_running[0],
            aIs_stk_service_running[1], aIs_stk_service_running[2], aIs_stk_service_running[3]);
}
示例#6
0
RILChannelCtx *getRILChannelCtxFromToken(RIL_Token t)
{
	assert(RIL_queryMyChannelId(t) < RIL_SUPPORT_CHANNELS);
	return &(s_RILChannel[RIL_queryMyChannelId(t)]);
}
示例#7
0
/**
 * Call from RIL to us to make a RIL_REQUEST
 *
 * Must be completed with a call to RIL_onRequestComplete()
 *
 * RIL_onRequestComplete() may be called from any thread, before or after
 * this function returns.
 *
 * Will always be called from the same thread, so returning here implies
 * that the radio is ready to process another command (whether or not
 * the previous command has completed).
 */
static void
onRequest (int request, void *data, size_t datalen, RIL_Token t)
{
    RIL_RadioState radioState = sState;

    RLOGD("onRequest: %s", requestToString(request));

#ifdef MTK_GEMINI
#if (MTK_GEMINI_SIM_NUM >= 4) /* Gemini plus 4 SIM*/
    if (RIL_CHANNEL_SET4_OFFSET <= RIL_queryMyChannelId(t)) {
        radioState = sState4;
    } else
#endif
#if (MTK_GEMINI_SIM_NUM >= 3) /* Gemini plus 3 SIM*/
    if (RIL_CHANNEL_SET3_OFFSET <= RIL_queryMyChannelId(t)) {
    	radioState = sState3;
    } else
#endif
    if (RIL_CHANNEL_OFFSET <= RIL_queryMyChannelId(t)) {
        radioState = sState2;
    }
#endif 
    /* Ignore all requests except RIL_REQUEST_GET_SIM_STATUS
     * when RADIO_STATE_UNAVAILABLE.
     */
    if (radioState == RADIO_STATE_UNAVAILABLE
        && request != RIL_REQUEST_GET_SIM_STATUS
    ) {
        RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0);
        return;
    }

    /* Ignore all non-power requests when RADIO_STATE_OFF
     * (except RIL_REQUEST_GET_SIM_STATUS)
     */
    if (radioState == RADIO_STATE_OFF
        && !(request == RIL_REQUEST_RADIO_POWER
            || request == RIL_REQUEST_RADIO_POWERON        
            || request == RIL_REQUEST_DUAL_SIM_MODE_SWITCH
            || request == RIL_REQUEST_SET_GPRS_CONNECT_TYPE            
            || request == RIL_REQUEST_SET_GPRS_TRANSFER_TYPE            
            || request == RIL_REQUEST_GET_SIM_STATUS
            || request == RIL_REQUEST_GET_IMEI
            || request == RIL_REQUEST_GET_IMEISV
            || request == RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE
            || request == RIL_REQUEST_BASEBAND_VERSION
            || request == RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
            || request == RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE
            || request == RIL_REQUEST_SET_LOCATION_UPDATES
            || request == RIL_REQUEST_WRITE_SMS_TO_SIM
            || request == RIL_REQUEST_DELETE_SMS_ON_SIM
            || request == RIL_REQUEST_GSM_GET_BROADCAST_SMS_CONFIG
            || request == RIL_REQUEST_GSM_SET_BROADCAST_SMS_CONFIG
            || request == RIL_REQUEST_GSM_SMS_BROADCAST_ACTIVATION
            || request == RIL_REQUEST_GET_SMSC_ADDRESS 
            || request == RIL_REQUEST_SET_SMSC_ADDRESS
            || request == RIL_REQUEST_REPORT_SMS_MEMORY_STATUS
            || request == RIL_REQUEST_SCREEN_STATE 
            || request == RIL_REQUEST_RESET_RADIO
            || request == RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE
            || request == RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND
            || request == RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM
            || request == RIL_REQUEST_QUERY_PHB_STORAGE_INFO 
            || request == RIL_REQUEST_WRITE_PHB_ENTRY
            || request == RIL_REQUEST_READ_PHB_ENTRY
            || request == RIL_REQUEST_SET_TTY_MODE
            || request == RIL_REQUEST_MOBILEREVISION_AND_IMEI
            || request == RIL_REQUEST_QUERY_ICCID
			|| request == RIL_REQUEST_GET_SMS_SIM_MEM_STATUS)
    ) {
        RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0);
        return;
    }

    /* set pending RIL request */
    setRequest(request);

    if (!(rilSimMain(request, data, datalen, t) ||
        rilNwMain(request, data, datalen, t) ||
        rilCcMain(request, data, datalen, t) ||
        rilSsMain(request, data, datalen, t) ||
        rilSmsMain(request, data, datalen, t) ||
        rilStkMain(request, data, datalen, t) ||
        rilOemMain(request, data, datalen, t) ||
        rilDataMain(request, data, datalen, t))
    ) {

        RIL_onRequestComplete(t, RIL_E_REQUEST_NOT_SUPPORTED, NULL, 0);

    }
    
    /* Reset pending RIL request */
    resetRequest(request);

}