Exemplo n.º 1
0
Int16 tdcli_send_request(td_session* sess, char *req)
{
    INTERFACE_DEBUG_C();
    INTERFACE_DEBUG("Submitting request: %s", req);

    Int32 result;
    sess->dbcarea->func = DBFIRQ;
    gettimeofday(&request_beginning, 0);

    sess->dbcarea->req_ptr = req;
    sess->dbcarea->req_len = strlen(req);
    DBCHCL(&result, sess->context, sess->dbcarea);
    if (result != EM_OK) {
        fprintf(stderr, "-!- Error in Initiating a request: %s\n", sess->dbcarea->msg_text);
        tdcli_end(sess);
        return -1;
    }
    sess->request = sess->dbcarea->o_req_id;
    sess->session = sess->dbcarea->o_sess_id;
    interrupt_tdcli_fetching = 0;

    INTERFACE_DEBUG_S("Submitting request successed");

    return EM_OK;
}
Exemplo n.º 2
0
/*{{{ ComponentSetAttribute*/
int ComponentSetAttribute(player_component_handle_t Component,
						  const char *Attribute,
						  union attribute_descriptor_u *Value)
{
	int Result = 0;
	INTERFACE_DEBUG("\n");
	Result = PlayerInterface->Ops->component_set_attribute(Component, Attribute, Value);
	if (Result < 0)
		INTERFACE_ERROR("component_set_attribute failed\n");
	return Result;
}
Exemplo n.º 3
0
Int16 tdcli_end(td_session* sess)
{
    Int32 result;
    /* tdcli_clear_dbcareax(sess); */
    sess->dbcarea->func = DBFDSC;
    DBCHCL(&result,sess->context, sess->dbcarea);
    DBCHCLN(&result,sess->context);

    INTERFACE_DEBUG("Exiting: %s", sess->dbcarea->msg_text);

    return 0;
}
Exemplo n.º 4
0
Int16 tdcli_connect(td_session* sess, char* logon)
{
    INTERFACE_DEBUG_C();
    INTERFACE_DEBUG("Logging on to: %s", logon);

    Int32 result;
    gettimeofday(&request_beginning, 0);

    sess->dbcarea->logon_ptr=logon;
    sess->dbcarea->logon_len=strlen(logon);
    sess->dbcarea->func=DBFCON;
    DBCHCL(&result, sess->context, sess->dbcarea);
    if (result != EM_OK) {
        fprintf(stdout, "-!- Error in Logon: %s\n", sess->dbcarea->msg_text);
        tdcli_end(sess);
        return -1;
    }
    sess->request = sess->dbcarea->o_req_id;
    sess->session = sess->dbcarea->o_sess_id;

    return EM_OK;
}
Exemplo n.º 5
0
int8_t tsi_add_pid_to_filter(int pid,int8_t type,int8_t buff_idx)
{
    int32_t index;
    tsi_err_e err;

    if(inited==0) return -1;

    for(index=0;index<MAX_NUM_PIDS_SUPPORTED;index++)
    {
            /* check for the index to be free */
            if(-1 == pid_val[index])
            {
                    INTERFACE_DEBUG("pid_val[%d]:%d\n",index,pid_val[index]);
                    pid_val[index] = pid;
                    break;
            }
    }

    if(MAX_NUM_PIDS_SUPPORTED == index)
    {
            INTERFACE_DEBUG("add pid - MAX pid's reached :%d\n",pid);
            for(index=0;index<MAX_NUM_PIDS_SUPPORTED;index++)
                    INTERFACE_DEBUG("%d ",pid_val[index]);

            return -1;
    }

//    printf("tsi_add_pid_to_filter:%d\n",pid);
    /* add bit into fid bitmap */
    fid_bitmap |= (1<<index);
    pid_val[index] = pid;
    pid_number++;

    cfg.buffer_index  = buff_idx;

    if(PSI == type)
    {
            cfg.pkts_per_intr = TSI_CTRL_PKTSPERINTR;

    }
    else if(AUDIO == type)
    {
            cfg.pkts_per_intr = TSI_MEDIADATA_AUD_PKTSPERINTR;	

    }
    else if(VIDEO == type)
    {
            cfg.pkts_per_intr = TSI_MEDIADATA_VID_PKTSPERINTR;	

    }
    else if(SUB_TITLE == type)
    {
            cfg.pkts_per_intr = TSI_SUBTITLE_PKTSPERINTR;	

    }
    else
    {
            /* should not enter here */
            INTERFACE_DEBUG("invalid type inp params %d %d\n",buff_idx,pid);
            return -1;
    }

    INTERFACE_DEBUG("add pid to filter config %d %d %d %d %d %d %d\n",cfg.fid,cfg.pid,cfg.pkts_per_intr,cfg.buffer_index,fid_bitmap,pid_val[index],index);
    cfg.fid = index;
    cfg.pid = pid_val[index];
    err = tsi_filter_cfg(test_cfg);

    if(err)
    {
            INTERFACE_DEBUG("add pid into filter config error %d\n",err);
            return err;
    }

    tsi_clear_buffer(buff_idx);
    enable_filter(fid_bitmap);	

    //INTERFACE_DEBUG("cfg.fid:%d cfg.pid:%d interrupt:%d\n",cfg.fid,cfg.pid, packet_number_pre_interrupt[index]);
    //tsi_clear_buffer(buff_idx);

    err=tsi_filter_en(test_en);


    return err;
}
Exemplo n.º 6
0
int8_t tsi_remove_pid_from_filter(int pid)
{
	int index;
	tsi_err_e err;

        if(inited==0) return -1;
        
	if(pid>=0)
	{
		if(pid_number<=0)
		{
			return -1;
		}

		for(index=0;index<MAX_NUM_PIDS_SUPPORTED;index++)
		{
			/* check for the index to be free */
			if(pid == pid_val[index])
			{
				INTERFACE_DEBUG("remove pid_val[%d]:%d\n",index,pid_val[index]);
				pid_val[index] = -1;
				break;
			}
		}
		
		if(MAX_NUM_PIDS_SUPPORTED == index)
		{
			INTERFACE_DEBUG("remove pid - MAX pid's reached :%d\n",pid);
			for(index=0;index<MAX_NUM_PIDS_SUPPORTED;index++)
				INTERFACE_DEBUG("%d ",pid_val[index]);

			return -1;
		}
		
		/* update the fid number */
		fid_bitmap &= (~(1<<index));

		pid_number--;
		INTERFACE_DEBUG("remove pid:remove tsi_exit %d \n",fid_bitmap);

		enable_filter(fid_bitmap);
		err=tsi_filter_en(test_en);
	}
	else
	{
		INTERFACE_DEBUG("remove pid:remove all pid\n");
		pid_number = 0;
		memset((void*)pid_val,-1,sizeof(uint32_t)*PID_NUM);
		//memset(packet_number_pre_interrupt,0,sizeof(int)*PID_NUM);
		fid_bitmap = 0;
		INTERFACE_DEBUG("remove pid:remove tsi_exit %d \n",fid_bitmap);

		enable_filter(fid_bitmap);

		err=tsi_filter_en(test_en);

		INTERFACE_DEBUG("remove pid:tsi_clear %d \n",fid_bitmap);
		tsi_clear_buffer(TSI_CTRL_BUFFINDEX);
		tsi_clear_buffer(TSI_MEDIA_DATA_BUFFINDEX);
                tsi_clear_buffer(TSI_EPG_BUFFINDEX);
                tsi_clear_buffer(TSI_TIME_BUFFINDEX);
	}

	return err;

}
Exemplo n.º 7
0
Int16 tdcli_fetch_request(td_session *sess)
{
    INTERFACE_DEBUG_C();
    Int32 result;
    int response_type = 0, showflag = 0;
    int retval_resp_buf;
    int data_type;
    int i, status;
    char ctc[6400];
    struct CliSuccessType *SuccPcl;
    struct CliFailureType *FailPcl;
    struct CliOkType *OKPcl;

    sess->dbcarea->i_sess_id = sess->session;
    sess->dbcarea->i_req_id  = sess->request;
    sess->dbcarea->func = DBFFET;

    status = OK;
    while (status == OK && !interrupt_tdcli_fetching) {
        DBCHCL(&result,sess->context,sess->dbcarea);
        if (result == REQEXHAUST)
            status = STOP;
        else if (result != EM_OK)
            status = FAILED;
        else {
            INTERFACE_DEBUG("Flavor Type: %d", sess->dbcarea->fet_parcel_flavor);

            switch (sess->dbcarea->fet_parcel_flavor) {
            case PclSUCCESS: /* 8 */
                SuccPcl = (struct CliSuccessType *) sess->dbcarea->fet_data_ptr;

                INTERFACE_DEBUG("Success parcel, length %d", (Int32)sess->dbcarea->fet_ret_data_len);
                INTERFACE_DEBUG("Activity Type : %d", SuccPcl->ActivityType);
                INTERFACE_DEBUG("Activity Count: %d", SuccPcl->ActivityCount);

                resp_count(SuccPcl->ActivityType, 0, 0);
                break;

            case PclFAILURE: /* 9 */
                INTERFACE_DEBUG("Failure parcel, length %d", (Int32)sess->dbcarea->fet_ret_data_len);
                tdcli_write_error(sess->dbcarea->fet_data_ptr);
                break;

            case PclRECORD : /* 10 */
                INTERFACE_DEBUG("Record parcel, length %d", (Int32)sess->dbcarea->fet_ret_data_len);
                break;

            case PclENDSTATEMENT: /* 11 */
                INTERFACE_DEBUG_S("EndStatement parcel");
                flush_resp_buffer();
                reset_resp_buffer(0);
                break;

            case PclENDREQUEST: /* 12 */
                INTERFACE_DEBUG_S("EndRequest parcel");
                break;

            case PclOK: /* 17 */
                OKPcl = (struct CliOkType *) sess->dbcarea->fet_data_ptr;

                INTERFACE_DEBUG_S("OK parcel");
                INTERFACE_DEBUG("Activity Type : %d", OKPcl->ActivityType);
                INTERFACE_DEBUG("Activity Count: %d",OKPcl->ActivityCount);

                resp_count(OKPcl->ActivityType, OKPcl->ActivityCount, OKPcl->FieldCount);
                reset_resp_buffer(OKPcl->FieldCount);
                if (OKPcl->ActivityType == PclShowStmt)
                    showflag = 1;
                else
                    showflag = 0;

                break;

            case PclFIELD: /* 18 */
                INTERFACE_DEBUG("Field parcel, length %d", (Int32)sess->dbcarea->fet_ret_data_len);
                if(DEBUG_ON & 0xF0) {
                    printf("----------- %d -----------------\n", response_type);
                    for (i = 0; i < sess->dbcarea->fet_ret_data_len; i++)
                        printf("%c", sess->dbcarea->fet_data_ptr[i]);
                    printf("\n");
                }
                if (response_type == RESPONSE_TITLE ||
                    response_type == RESPONSE_FORMAT ||
                    response_type == RESPONSE_RECEND)
                    data_type = 0;
                else if (response_type == RESPONSE_DATA) {
                    if (showflag)
                        data_type = RESPONSE_DATA_SHOWDML;
                    else
                        data_type = RESPONSE_DATA_REGULAR;
                }
                else {
                    data_type = 0;
                }
                retval_resp_buf = add_resp_buffer(response_type,
                                                 data_type,
                                                 sess->dbcarea->fet_ret_data_len,
                                                 sess->dbcarea->fet_data_ptr);
                if(retval_resp_buf < 0)
                    interrupt_tdcli_fetching = 1;

                break;

            case PclNULLFIELD: /* 19 */
                INTERFACE_DEBUG_S("NullField parcel");
                add_resp_buffer(response_type, data_type, 0, 0);
                break;

            case PclTITLESTART: /* 20 */
                INTERFACE_DEBUG_S("TitleStart parcel");
                response_type = RESPONSE_TITLE;
                break;

            case PclTITLEEND: /* 21 */
                INTERFACE_DEBUG_S("TitleEnd parcel");
                response_type = 0;
                break;

            case PclFORMATSTART: /* 22 */
                INTERFACE_DEBUG_S("FormatStart parcel");
                response_type = RESPONSE_FORMAT;

                break;

            case PclFORMATEND: /* 23 */
                INTERFACE_DEBUG_S("FormatEnd parcel");
                response_type = 0;

            case PclSIZESTART: /* 24 */
                INTERFACE_DEBUG_S("SizeStart parcel");
                break;

            case PclSIZEEND: /* 25 */
                INTERFACE_DEBUG_S("SizeEnd parcel");
                break;

            case PclSIZE: /* 26 */
                INTERFACE_DEBUG_S("Size parcel");
                break;

            case PclRECSTART: /* 27 */
                INTERFACE_DEBUG_S("RecordStart parcel");
                response_type = RESPONSE_DATA;

                break;

            case PclRECEND: /* 28 */
                INTERFACE_DEBUG_S("RecordEnd parcel");
                add_resp_buffer(RESPONSE_RECEND, 0, 0, 0);
                response_type = 0;

                break;

            case PclNOP: /* 32 */
                INTERFACE_DEBUG_S("Nop parcel");
                break;

            case PclWITH: /* 33 */
                INTERFACE_DEBUG_S("With parcel");
                break;

            case PclPOSITION: /* 34 */
                INTERFACE_DEBUG_S("Position parcel");
                break;

            case PclENDWITH: /* 35 */
                INTERFACE_DEBUG_S("EndWidth parcel");
                break;

            case PclPOSSTART: /* 46 */
                INTERFACE_DEBUG_S("PosStart parcel");
                break;

            case PclPOSEND: /* 47 */
                INTERFACE_DEBUG_S("PosEnd parcel");
                break;

            case PclERROR: /* 49 */
                INTERFACE_DEBUG_S("ERROR parcel");
                status = STOP;
                tdcli_write_error(sess->dbcarea->fet_data_ptr);
                tdcli_end(sess);
                return -1;

            case PclDATAINFO: /* 71 */
                INTERFACE_DEBUG_S("DataInfo parcel");
                break;

            case PclPREPINFO: /* 86 */
                INTERFACE_DEBUG_S("PrepInfo parcel");
                break;

            case PclASSIGNRSP: /* 101 */
                INTERFACE_DEBUG_S("AssignRsp parcel");
                break;

            case PclCURSORDBC: /* 121 */
                INTERFACE_DEBUG_S("CursorDBC parcel");
                break;

            case PclFLAGGER: /* 122 */
                INTERFACE_DEBUG_S("Flagger parcel");
                break;

            case PclERRORINFO: /* 164 */
                INTERFACE_DEBUG_S("ErrorInfo parcel");
                break;

            case PclSTATEMENTINFO: /* 169 */
                INTERFACE_DEBUG_S("StatementInfo parcel");
                break;

            case PclSTATEMENTINFOEND: /* 170 */
                INTERFACE_DEBUG_S("StatementInfoEnd parcel");
                break;

            case PclRESULTSET: /* 172 */
                INTERFACE_DEBUG_S("ResultSet parcel");
                break;

            default:
                INTERFACE_DEBUG_S("Unprocessed parcel");
                break;

            } /*end of switch*/
        } /*end of else*/
    } /*end of while*/

    signal_resp_pager(SIG_IGN);
    close_resp_pager();

    if(status == FAILED) {
        fprintf(stderr, "Fetch failed: %s\n",sess->dbcarea->msg_text);
        tdcli_end(sess);
        return -1;
    }

    return EM_OK;
}