static RET_CODE search_start(control_t *p_ctrl, u16 msg,u32 para1, u32 para2)
{
	ui_scan_param_t scan_param;
	memset(&scan_param, 0, sizeof(ui_scan_param_t));
	get_scan_param(ctrl_get_parent(p_ctrl), &scan_param);
	if(SCAN_TYPE_RANGE == get_search_type())
		range_search(ctrl_get_parent(p_ctrl), &scan_param);
	else
		manage_open_menu(ROOT_ID_DO_SEARCH, get_search_type(), (u32)&scan_param);
	return SUCCESS;
}
Exemplo n.º 2
0
Arquivo: command.c Projeto: daaang/mpc
int
cmd_list(int argc, char **argv, struct mpd_connection *conn)
{
	enum mpd_tag_type type = get_search_type(argv[0]);
	if (type == MPD_TAG_UNKNOWN)
		return -1;

	--argc;
	++argv;

	mpd_search_db_tags(conn, type);

	if (argc > 0 && !add_constraints(argc, argv, conn))
		return -1;

	if (!mpd_search_commit(conn))
		printErrorAndExit(conn);

	struct mpd_pair *pair;
	while ((pair = mpd_recv_pair_tag(conn, type)) != NULL) {
		printf("%s\n", charset_from_utf8(pair->value));
		mpd_return_pair(conn, pair);
	}

	my_finishCommand(conn);
	return 0;
}
Exemplo n.º 3
0
int
get_constraints(int argc, char **argv, struct constraint **constraints)
{
    int numconstraints = 0;
    int type;
    int i;

    assert(argc > 0 && argc % 2 == 0);

    *constraints = malloc(sizeof(**constraints) * argc / 2);

    for (i = 0; i < argc; i += 2) {
        type = get_search_type(argv[i]);
        if (type < 0) {
            free(*constraints);
            return -1;
        }

        (*constraints)[numconstraints].type = type;
        (*constraints)[numconstraints].query = argv[i+1];
        numconstraints++;
    }

    return numconstraints;
}
static void get_scan_param(control_t *p_cont, ui_scan_param_t *scan_param)
{
	control_t *p_ctrl;
	u8 nit;

	get_tp_node(p_cont, &(scan_param->tp));
	if(SCAN_TYPE_MANUAL==get_search_type())
	{
		p_ctrl = ctrl_get_child_by_id(p_cont, IDC_NIT_SEARCH);
		nit = (u8)ui_comm_select_get_focus(p_ctrl);
		switch(nit)
		{
		case 0:
			scan_param->nit_type = NIT_SCAN_WITHOUT;
			break;
		case 1:
#ifdef AISET_BOUQUET_SUPPORT
			scan_param->nit_type = NIT_SCAN_ALL_TP;
#else
			scan_param->nit_type = NIT_SCAN_ONCE;
#endif
			break;
		}
	}
	else if(SCAN_TYPE_AUTO==get_search_type())
	{
#ifdef AISET_BOUQUET_SUPPORT
		scan_param->nit_type = NIT_SCAN_ALL_TP;
#else
		scan_param->nit_type = NIT_SCAN_ONCE;
#endif
		
	}
	else if(SCAN_TYPE_RANGE==get_search_type())
	{
		scan_param->nit_type = NIT_SCAN_ONCE;
	}
}
Exemplo n.º 5
0
int cmd_list ( int argc, char ** argv, mpd_Connection * conn )
{
	Constraint *constraints;
	int numconstraints = 0;
	int type;
	int i;
	char *tag;

	type = get_search_type(argv[0]);
	if (type < 0)
		return -1;

	argc -= 1;
	argv += 1;

	if (argc > 0) {
		if (argc % 2 != 0) {
			DIE("arguments must be a tag type and "
			    "optional pairs of search types and queries\n");
		}

		numconstraints = get_constraints(argc, argv, &constraints);
		if (numconstraints < 0)
			return -1;
	}

	mpd_startFieldSearch(conn, type);

	if (argc > 0) {
		for (i = 0; i < numconstraints; i++) {
			mpd_addConstraintSearch(conn, constraints[i].type,
						charset_to_utf8(constraints[i].query));
		}

		free(constraints);
	}

	mpd_commitSearch(conn);
	printErrorAndExit(conn);

	while ((tag = mpd_getNextTag(conn, type))) {
		printErrorAndExit(conn);
		printf("%s\n", charset_from_utf8(tag));
		free(tag);
	}

	my_finishCommand(conn);

	return 0;
}
static void get_tp_node(control_t *p_cont, dvbs_tp_node_t *tp)
{
	control_t *p_ctrl;
	u8 demod;
	if(SCAN_TYPE_RANGE==get_search_type())
		p_ctrl = ctrl_get_child_by_id(p_cont, IDC_FREQ_SART);
	else
		p_ctrl = ctrl_get_child_by_id(p_cont, IDC_FREQ);
	tp->freq= ui_comm_numedit_get_num(p_ctrl);

	p_ctrl = ctrl_get_child_by_id(p_cont, IDC_SYM);
	tp->sym= ui_comm_numedit_get_num(p_ctrl);

	p_ctrl = ctrl_get_child_by_id(p_cont, IDC_MODU);
	demod = (u8)ui_comm_select_get_focus(p_ctrl);
	
	tp->nim_modulate = NIM_MODULA_AUTO;
	switch(demod)
	{
	case 0:
		tp->nim_modulate=NIM_MODULA_AUTO;
		break;

	case 1:
		tp->nim_modulate = NIM_MODULA_BPSK;		
		break;

	case 2:
		tp->nim_modulate = NIM_MODULA_QPSK;		
		break;

	case 3:
		tp->nim_modulate = NIM_MODULA_8PSK;		
		break;

	case 4:
		tp->nim_modulate = NIM_MODULA_QAM16;
		break;

	case 5:
		tp->nim_modulate = NIM_MODULA_QAM32;
		break;

	case 6:
		tp->nim_modulate = NIM_MODULA_QAM64; 	 
		break;

	case 7:
		tp->nim_modulate = NIM_MODULA_QAM128;
		break;

	case 8:
		tp->nim_modulate = NIM_MODULA_QAM256;
		break;

	default:
		tp->nim_modulate = NIM_MODULA_QAM64;
		break;
	}

}
static RET_CODE exit_ui_search(control_t *p_cont, u16 msg,u32 para1, u32 para2)
{
	manage_close_menu(ROOT_ID_XSEARCH,0,0);
	
	return swtich_to_sys_set(ROOT_ID_XSEARCH, get_search_type());
}
RET_CODE open_ui_search(u32 para1, u32 para2)
{
	u16 i,y;
	u16 search_cnt;
	control_t *p_cont,*p_ctrl = NULL;
	dvbc_lock_t tp = {0};
	u16 freq_totle;
	u8 *id_item;
	u8 auto_id_item[4] = {IDC_FREQ, IDC_SYM, IDC_MODU, IDC_SEARCH_START}; 
	u8 manual_id_item[5] = {IDC_FREQ, IDC_SYM, IDC_MODU, IDC_NIT_SEARCH, IDC_SEARCH_START};
	u8 range_id_item[5] = {IDC_FREQ_SART, IDC_FREQ, IDC_SYM, IDC_MODU, IDC_SEARCH_START};

	set_search_type(para1);
	set_freq_table();
	switch(get_search_type())
	{
	case SCAN_TYPE_AUTO:
		search_cnt = 4;
		id_item = auto_id_item;
		break;
	case SCAN_TYPE_MANUAL:
		search_cnt = 5;
		id_item = manual_id_item;
		break;
	case SCAN_TYPE_RANGE:
		search_cnt = 5;
		id_item = range_id_item;
		break;
	default:
		return ERR_FAILURE;
		break;
	}
	#ifdef SEARCH_SUPPORT_FILTER
	search_cnt++;
	#endif

	p_cont = ui_comm_right_root_create_with_signbar(ROOT_ID_XSEARCH, ROOT_ID_XSYS_SET, OBJ_ATTR_ACTIVE, 0);
	ctrl_set_keymap(p_cont, ui_search_cont_keymap);
	ctrl_set_proc(p_cont, ui_search_cont_proc);
	
	sys_status_get_main_tp1(&tp);
	y = UI_SEARCH_FREQ_Y;
	
	for (i = 0; i < search_cnt; i++)
	{
		switch (i)
		{
		case 0:
			if(SCAN_TYPE_RANGE!=get_search_type())
				p_ctrl = creat_freq_btn(p_cont, IDS_FREQUECY, IDC_FREQ, y, tp.tp_freq);
			else
				p_ctrl = creat_freq_btn(p_cont, IDS_FREQUENCY_START, IDC_FREQ_SART, y, freq_table[0]);
		break;
		case 1:
			if(SCAN_TYPE_RANGE!=get_search_type())
			{
				p_ctrl = creat_sym_btn(p_cont, IDC_SYM, y, tp.tp_sym);
			}
			else
			{
				freq_totle = sizeof(g_DVBCFullFreqTable_Chi)/sizeof(s32);
				p_ctrl = creat_freq_btn(p_cont, IDS_FREQUENCY_END, IDC_FREQ, y, freq_table[freq_totle-1]);
			}
		break;
		case 2:
			if(SCAN_TYPE_RANGE!=get_search_type())
				p_ctrl = creat_modu_btn(p_cont,IDC_MODU, y, tp.nim_modulate);
			else
				p_ctrl = creat_sym_btn(p_cont, IDC_SYM, y, tp.tp_sym);
		break;
		case 3:
			if(SCAN_TYPE_MANUAL==get_search_type())
			{
				p_ctrl = creat_nit_btn(p_cont, IDC_NIT_SEARCH, y);
			}
			else if(SCAN_TYPE_RANGE==get_search_type())
			{
				p_ctrl = creat_modu_btn(p_cont,IDC_MODU, y, tp.nim_modulate);
			}
			else{
				p_ctrl = creat_start_btn(p_cont, IDC_SEARCH_START, y);
			}
		break;
		#ifdef SEARCH_SUPPORT_FILTER
		case 4:
			p_ctrl = creat_search_filter_btn(p_cont,IDC_SEARCH_FILTER,y);
			break;
		case 5:
			p_ctrl = creat_start_btn(p_cont, IDC_SEARCH_START, y);
			break;
		#else
		case 4:
			p_ctrl = creat_start_btn(p_cont, IDC_SEARCH_START, y);
			break;
		#endif
		default:
			MT_ASSERT(0);
		break;
		}
		ctrl_set_related_id(p_ctrl, 0, (0==i)?id_item[search_cnt-1]:id_item[i-1],
												0,((search_cnt-1)==i)?id_item[0]:id_item[i+1]);
		y += COMM_ITEM_H + RIGHT_BTN_GAP;
	}

	if(get_search_type() == SCAN_TYPE_AUTO || get_search_type() == SCAN_TYPE_MANUAL)
		search_set_transpond(p_cont);
	ctrl_default_proc(ctrl_get_child_by_id(p_cont, id_item[0]), MSG_GETFOCUS, 0, 0);
	ctrl_paint_ctrl(p_cont,FALSE);
	return SUCCESS;
}