Exemplo n.º 1
0
void si4754Radio::slotSearchChannel(void)
{
    int res = -1;
    if(m_isSearching)
    {
        if(m_radioMode == RM_FREQ_SECTION_FM)
        {
            res =  seekFM();
            if(!res)//为0表示收到台
            {
                int channel = si475xFMRX_get_frequency();
                if(isFM(channel*10))//在FM范围内,超范围的台丢弃
                {
                    emit searchedOneChannel(channel*10);
                    QTimer::singleShot(100,this,SLOT(slotSearchChannel()));
                }
                else
                {
                    emit searchEnd(RM_SEARCH_R_OK);
                }
            }
            else//收不到台表示收台完成
            {
                emit searchEnd(RM_SEARCH_R_OK);
            }
        }
        else
        {
            res =  seekAM();
            if(!res)//为0表示收到台
            {
                int channel = si475xAMRX_get_frequency();
                if(isAM(channel))//在AM范围内,超范围的台丢弃
                {
                    emit searchedOneChannel(channel);
                    QTimer::singleShot(100,this,SLOT(slotSearchChannel()));
                }
                else
                {
                    emit searchEnd(RM_SEARCH_R_OK);
                }
            }
            else//收不到台表示收台完成
            {
                emit searchEnd(RM_SEARCH_R_OK);
            }
        }
    }
    else
    {
        emit searchEnd(RM_SEARCH_R_CANCEL);
    }
}
Exemplo n.º 2
0
 int searchEnd(int A[], int target, int left, int right)   {
     if (left > right)
         return -1;
     if (left == right && A[left] == target)
         return left;
     if (A[left] > target || A[right] < target)
         return -1;
     int mid = (left + right + 1) / 2;
     if (target >= A[mid])    {
         return searchEnd(A, target, mid, right);
     }
     else    {
         return searchEnd(A, target, left, mid - 1);
     }
 }
Exemplo n.º 3
0
static PassRefPtr<Range> findStringBetweenPositions(const String& target, const Position& start, const Position& end, FindOptions options)
{
    Position searchStart(start);
    Position searchEnd(end);

    bool forward = !(options & Backwards);

    while (true) {
        Position resultStart;
        Position resultEnd;
        findPlainText(searchStart, searchEnd, target, options, resultStart, resultEnd);
        if (resultStart == resultEnd)
            return nullptr;

        RefPtr<Range> resultRange = Range::create(*resultStart.document(), resultStart, resultEnd);
        if (!resultRange->collapsed())
            return resultRange.release();

        // Found text spans over multiple TreeScopes. Since it's impossible to return such section as a Range,
        // we skip this match and seek for the next occurrence.
        // FIXME: Handle this case.
        if (forward)
            searchStart = resultStart.next();
        else
            searchEnd = resultEnd.previous();
    }

    ASSERT_NOT_REACHED();
    return nullptr;
}
Exemplo n.º 4
0
int RadioManagerOld::stopSearch()
{
    //printf("[radio][%4d] ~~~~~~~~~~~~~~~~~stopSearch  \n", __LINE__, RM_SEARCH_R_CANCEL);
	if(status !=RM_STATUS_SEARCH)
		return RM_R_OK;

	killTimer(timeId);
	

	status = RM_STATUS_LISTEN;
	if(listenedChannel !=0)
	{
		if(freqSection ==RM_FREQ_SECTION_FM)
			selectFMChannel(listenedChannel,0);
		else
			selectAMChannel(listenedChannel,0);
		
	}
	else
	{
		closeRadio();
	}
	
	emit searchChannelChanged(currentSearchChannel,0);
    //printf("[radio][%4d] ~~~~~~~~~~~~~~~~~searchEnd cause[%d]   \n", __LINE__, RM_SEARCH_R_CANCEL);
	emit searchEnd(RM_SEARCH_R_CANCEL);

	return RM_R_OK;
}
Exemplo n.º 5
0
 vector<int> searchRange(int A[], int n, int target) {
     // Start typing your C/C++ solution below
     // DO NOT write int main() function
     
     vector<int> ans;
     int start, end;
     
     start = searchStart(A, target, 0, n - 1);
     end = searchEnd(A, target, 0, n - 1);
     
     ans.push_back(start);
     ans.push_back(end);
     
     return ans;
 }
Exemplo n.º 6
0
int RadioManagerOld::closeRadio()
{
	if(status == RM_STATUS_INIT)
		return RM_R_OK;


	if(status ==RM_STATUS_SEARCH)
	{
		killTimer(timeId);
		status =RM_STATUS_INIT;
        //printf("[radio][%4d] ~~~~~~~~~ close radio searchEnd cause[%d]   \n", __LINE__, RM_SEARCH_R_CANCEL);
		emit searchChannelChanged(currentSearchChannel,0);
		emit searchEnd(RM_SEARCH_R_CANCEL);
		
	}
	else
	{
		status =RM_STATUS_INIT;
	}
	return RM_R_OK;
}
Exemplo n.º 7
0
	MainPage::MainPage(QWidget* parent)
		: QWidget(parent)
		, search_widget_(new SearchWidget(8, false, this))
		, contact_dialog_(new ContactDialog(this))
        , video_window_(new VideoWindow())
		, video_panel_(new CallPanelMain(this))
		, pages_(new WidgetsNavigator(this))
		, search_contacts_(nullptr)
        , profile_settings_(new ProfileSettingsWidget(this))
        , general_settings_(new GeneralSettingsWidget(this))
        , noContactsYetSuggestions_(nullptr)
        , contact_list_widget_(new ContactList(this, Logic::MembersWidgetRegim::CONTACT_LIST, NULL))
        , add_contact_menu_(0)
    {
        connect(&Utils::InterConnector::instance(), SIGNAL(showNoContactsYetSuggestions()), this, SLOT(showNoContactsYetSuggestions()));
        connect(&Utils::InterConnector::instance(), SIGNAL(hideNoContactsYetSuggestions()), this, SLOT(hideNoContactsYetSuggestions()));

        if (this->objectName().isEmpty())
            this->setObjectName(QStringLiteral("main_page"));
        this->resize(400, 300);
        this->setProperty("Invisible", QVariant(true));
        horizontal_layout_ = new QHBoxLayout(this);
        horizontal_layout_->setSpacing(0);
        horizontal_layout_->setObjectName(QStringLiteral("horizontalLayout"));
        horizontal_layout_->setContentsMargins(0, 0, 0, 0);
        QMetaObject::connectSlotsByName(this);

        QHBoxLayout* originalLayout = qobject_cast<QHBoxLayout*>(layout());
        QVBoxLayout* contactsLayout = new QVBoxLayout();
        contactsLayout->setContentsMargins(0, 0, 0, 0);
        contactsLayout->setSpacing(0);
        assert(video_panel_);
        if (video_panel_) {
            contactsLayout->addWidget(video_panel_);
            video_panel_->hide();
        }

        contactsLayout->addWidget(search_widget_);
        contactsLayout->addWidget(contact_list_widget_);
        QSpacerItem* contactsLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum);
        contactsLayout->addSpacerItem(contactsLayoutSpacer);

        pages_layout_ = new QVBoxLayout();
        pages_layout_->setContentsMargins(0, 0, 0, 0);
        pages_layout_->setSpacing(0);
        pages_layout_->addWidget(pages_);
        {
            auto pc = pages_->count();
            pages_->addWidget(contact_dialog_);
            pages_->addWidget(profile_settings_);
            pages_->addWidget(general_settings_);
            if (!pc)
                pages_->push(contact_dialog_);
        }
        originalLayout->addLayout(contactsLayout);
        originalLayout->addLayout(pages_layout_);
        QSpacerItem* originalLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum);
        originalLayout->addSpacerItem(originalLayoutSpacer);
        originalLayout->setAlignment(Qt::AlignLeft);
        setFocus();

        connect(contact_list_widget_, SIGNAL(itemSelected(QString)), contact_dialog_, SLOT(onContactSelected(QString)), Qt::QueuedConnection);
        connect(contact_dialog_, SIGNAL(sendMessage(QString)), contact_list_widget_, SLOT(onSendMessage(QString)), Qt::QueuedConnection);

        connect(contact_list_widget_, SIGNAL(itemSelected(QString)), this, SLOT(onContactSelected(QString)), Qt::QueuedConnection);
        connect(contact_list_widget_, SIGNAL(addContactClicked()), this, SLOT(onAddContactClicked()), Qt::QueuedConnection);

        connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsShow(QString)), this, SLOT(onProfileSettingsShow(QString)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsShow(int)), this, SLOT(onGeneralSettingsShow(int)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(makeSearchWidgetVisible(bool)), search_widget_, SLOT(setVisible(bool)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(popPagesToRoot()), pages_, SLOT(poproot()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsDoMessage(QString)), contact_list_widget_, SLOT(select(QString)), Qt::QueuedConnection);

        connect(search_widget_, SIGNAL(searchBegin()), this, SLOT(searchBegin()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(searchEnd()), this, SLOT(searchEnd()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(search(QString)), Logic::GetSearchModel(), SLOT(searchPatternChanged(QString)), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(enterPressed()), contact_list_widget_, SLOT(searchResult()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(upPressed()), contact_list_widget_, SLOT(searchUpPressed()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(downPressed()), contact_list_widget_, SLOT(searchDownPressed()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(nonActiveButtonPressed()), this, SLOT(addButtonClicked()), Qt::QueuedConnection);
        connect(contact_list_widget_, SIGNAL(searchEnd()), search_widget_, SLOT(searchCompleted()), Qt::QueuedConnection);

        connect(Logic::GetContactListModel(), SIGNAL(selectedContactChanged(QString)), Logic::GetMessagesModel(), SLOT(contactChanged(QString)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipShowVideoWindow(bool)), this, SLOT(onVoipShowVideoWindow(bool)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncoming(const std::string&, const std::string&)), this, SLOT(onVoipCallIncoming(const std::string&, const std::string&)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), this, SLOT(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallDestroyed(const voip_manager::ContactEx&)), this, SLOT(onVoipCallDestroyed(const voip_manager::ContactEx&)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallCreated(const voip_manager::ContactEx&)), this, SLOT(onVoipCallCreated(const voip_manager::ContactEx&)), Qt::DirectConnection);

        search_widget_->setVisible(!contact_list_widget_->shouldHideSearch());
	}
Exemplo n.º 8
0
	void SearchWidget::searchCompleted()
	{
		ClearInput();
		setActive(false);
		emit searchEnd();
	}
Exemplo n.º 9
0
    MainPage::MainPage(QWidget* parent)
        : QWidget(parent)
        , search_widget_(new SearchWidget(false, this))
        , contact_dialog_(new ContactDialog(this))
#ifndef STRIP_VOIP
        , video_window_(nullptr)
#else
        , video_window_(nullptr)
#endif //STRIP_VOIP
        , pages_(new WidgetsNavigator(this))
        , search_contacts_(nullptr)
        , profile_settings_(new ProfileSettingsWidget(this))
        , general_settings_(new GeneralSettingsWidget(this))
        , live_chats_page_(new LiveChatHome(this))
        , themes_settings_(new ThemesSettingsWidget(this))
        , noContactsYetSuggestions_(nullptr)
        , contact_list_widget_(new ContactList(this, Logic::MembersWidgetRegim::CONTACT_LIST, nullptr))
        , add_contact_menu_(nullptr)
        , settings_timer_(new QTimer(this))
        , introduceYourselfSuggestions_(nullptr)
        , needShowIntroduceYourself_(false)
        , liveChats_(new LiveChats(this))
        , login_new_user_(false)
        , recv_my_info_(false)
    {
        connect(&Utils::InterConnector::instance(), &Utils::InterConnector::showPlaceholder, this, &MainPage::showPlaceholder);

        if (this->objectName().isEmpty())
            this->setObjectName(QStringLiteral("main_page"));
        setStyleSheet(Utils::LoadStyle(":/main_window/main_window.qss", Utils::get_scale_coefficient(), true));
        this->resize(400, 300);
        this->setProperty("Invisible", QVariant(true));
        horizontal_layout_ = new QHBoxLayout(this);
        horizontal_layout_->setSpacing(0);
        horizontal_layout_->setObjectName(QStringLiteral("horizontalLayout"));
        horizontal_layout_->setContentsMargins(0, 0, 0, 0);
        QMetaObject::connectSlotsByName(this);

        QHBoxLayout* originalLayout = qobject_cast<QHBoxLayout*>(layout());
        QVBoxLayout* contactsLayout = new QVBoxLayout();
        contactsLayout->setContentsMargins(0, 0, 0, 0);
        contactsLayout->setSpacing(0);

        contactsLayout->addWidget(search_widget_);
        contactsLayout->addWidget(contact_list_widget_);
        QSpacerItem* contactsLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum);
        contactsLayout->addSpacerItem(contactsLayoutSpacer);

        pages_layout_ = new QVBoxLayout();
        pages_layout_->setContentsMargins(0, 0, 0, 0);
        pages_layout_->setSpacing(0);
        pages_layout_->addWidget(pages_);
        {
            auto pc = pages_->count();
            pages_->addWidget(contact_dialog_);
            pages_->addWidget(profile_settings_);
            pages_->addWidget(general_settings_);
            pages_->addWidget(live_chats_page_);
            pages_->addWidget(themes_settings_);
            if (!pc)
                pages_->push(contact_dialog_);
        }
        originalLayout->addLayout(contactsLayout);
        originalLayout->addLayout(pages_layout_);
        QSpacerItem* originalLayoutSpacer = new QSpacerItem(0, 0, QSizePolicy::Minimum);
        originalLayout->addSpacerItem(originalLayoutSpacer);
        originalLayout->setAlignment(Qt::AlignLeft);
        setFocus();

        connect(contact_list_widget_, SIGNAL(itemSelected(QString)), contact_dialog_, SLOT(onContactSelected(QString)), Qt::QueuedConnection);
        connect(contact_dialog_, SIGNAL(sendMessage(QString)), contact_list_widget_, SLOT(onSendMessage(QString)), Qt::QueuedConnection);

        connect(contact_list_widget_, SIGNAL(itemSelected(QString)), this, SLOT(onContactSelected(QString)), Qt::QueuedConnection);
        connect(contact_list_widget_, SIGNAL(addContactClicked()), this, SLOT(onAddContactClicked()), Qt::QueuedConnection);

        connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsShow(QString)), this, SLOT(onProfileSettingsShow(QString)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(themesSettingsShow(bool,QString)), this, SLOT(onThemesSettingsShow(bool,QString)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsShow(int)), this, SLOT(onGeneralSettingsShow(int)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(liveChatsShow()), this, SLOT(onLiveChatsShow()), Qt::QueuedConnection);

        connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(generalSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(themesSettingsBack()), pages_, SLOT(pop()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(attachPhoneBack()), pages_, SLOT(pop()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(attachUinBack()), pages_, SLOT(pop()), Qt::QueuedConnection);

        connect(&Utils::InterConnector::instance(), SIGNAL(makeSearchWidgetVisible(bool)), search_widget_, SLOT(setVisible(bool)), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(popPagesToRoot()), this, SLOT(popPagesToRoot()), Qt::QueuedConnection);
        connect(&Utils::InterConnector::instance(), SIGNAL(profileSettingsDoMessage(QString)), contact_list_widget_, SLOT(select(QString)), Qt::QueuedConnection);

        connect(search_widget_, SIGNAL(searchBegin()), this, SLOT(searchBegin()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(searchEnd()), this, SLOT(searchEnd()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(search(QString)), Logic::GetSearchModel(), SLOT(searchPatternChanged(QString)), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(enterPressed()), contact_list_widget_, SLOT(searchResult()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(upPressed()), contact_list_widget_, SLOT(searchUpPressed()), Qt::QueuedConnection);
        connect(search_widget_, SIGNAL(downPressed()), contact_list_widget_, SLOT(searchDownPressed()), Qt::QueuedConnection);
        connect(contact_list_widget_, SIGNAL(searchEnd()), search_widget_, SLOT(searchCompleted()), Qt::QueuedConnection);

        connect(Logic::GetContactListModel(), SIGNAL(selectedContactChanged(QString)), Logic::GetMessagesModel(), SLOT(contactChanged(QString)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipShowVideoWindow(bool)), this, SLOT(onVoipShowVideoWindow(bool)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncoming(const std::string&, const std::string&)), this, SLOT(onVoipCallIncoming(const std::string&, const std::string&)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), this, SLOT(onVoipCallIncomingAccepted(const voip_manager::ContactEx&)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallDestroyed(const voip_manager::ContactEx&)), this, SLOT(onVoipCallDestroyed(const voip_manager::ContactEx&)), Qt::DirectConnection);
        connect(&Ui::GetDispatcher()->getVoipController(), SIGNAL(onVoipCallCreated(const voip_manager::ContactEx&)), this, SLOT(onVoipCallCreated(const voip_manager::ContactEx&)), Qt::DirectConnection);

        search_widget_->setVisible(!contact_list_widget_->shouldHideSearch());

        post_stats_with_settings();
        QObject::connect(settings_timer_, SIGNAL(timeout()), this, SLOT(post_stats_with_settings()));

        settings_timer_->start(Ui::period_for_stats_settings_ms);
        connect(Ui::GetDispatcher(), &core_dispatcher::myInfo, this, &MainPage::myInfo, Qt::UniqueConnection);
        connect(Ui::GetDispatcher(), &core_dispatcher::login_new_user, this, &MainPage::loginNewUser, Qt::DirectConnection);
        
        add_contact_menu_ = new FlatMenu(search_widget_->searchEditIcon());
        Utils::ApplyStyle(add_contact_menu_,
                          "QMenu { background-color: #f2f2f2; border:1px solid #cccccc; } "
                          "QMenu::item { padding-left:40dip; background-color:transparent; color:black; padding-top:6dip; padding-bottom:6dip; padding-right:12dip; } "
                          "QMenu::item:selected { background-color:#e2e2e2; } "
                          "QMenu::icon { padding-left:22dip; }"
                          );
        add_contact_menu_->addAction(QIcon(Utils::parse_image_name(":/resources/dialog_newchat_100.png")), QT_TRANSLATE_NOOP("contact_list", "New chat"), contact_list_widget_, SLOT(allClicked()));
        add_contact_menu_->addAction(QIcon(Utils::parse_image_name(":/resources/dialog_newgroup_100.png")), QT_TRANSLATE_NOOP("contact_list", "Create Groupchat"), this, SLOT(createGroupChat()));
        add_contact_menu_->setExpandDirection(Qt::AlignLeft);
        add_contact_menu_->stickToIcon();
        Utils::ApplyStyle(search_widget_->searchEditIcon(), "QPushButton::menu-indicator { image:none; } QPushButton:pressed { background-color:transparent; }");
        search_widget_->searchEditIcon()->setMenu(add_contact_menu_);
    }
Exemplo n.º 10
0
void RadioManagerOld::searchNextChannel()
{
	printf("+++++++++++++++++++++++RadioManagerOld::searchNextChannel+++++++++++++++++++++\n");
	int nextSearchInterval =RM_AM_SEARCH_INTERVAL;
	if(freqSection == RM_FREQ_SECTION_FM)
		nextSearchInterval =RM_FM_SEARCH_INTERVAL;

	lastSearchChannel =currentSearchChannel;

	if(freqSection ==RM_FREQ_SECTION_FM)
	{
		currentSearchChannel +=RM_FM_FREQ_STEP;
		if(currentSearchChannel>RM_FM_FREQ_MAX)
		{
			currentSearchChannel=0;
		}
	}
	else
	{
		currentSearchChannel +=RM_AM_FREQ_STEP;
		if(currentSearchChannel>RM_AM_FREQ_MAX)
		{
			currentSearchChannel=0;
		}
	}

    printf("~~~~~~~~~~~~~~~~~lastSearchChannel[%d] currentSearchChannel[%d]\n", lastSearchChannel, currentSearchChannel);

	
	if ( currentSearchChannel > 107900 )
	{
		currentSearchChannel=0;
	}
	

	emit searchChannelChanged(lastSearchChannel,currentSearchChannel);

	if(currentSearchChannel>0)
	{
		if(m_voiceSwithFunction!=NULL &&  m_voiceStatus ==RM_VOICE_SWITCH_ON)
		{
			m_voiceSwithFunction(RM_VOICE_SWITCH_OFF,m_voiceSwithUserData);
			m_voiceStatus =RM_VOICE_SWITCH_OFF;
		}

		if(freqSection ==RM_FREQ_SECTION_FM)
			searchFMChannel(currentSearchChannel,1);
		else
			searchAMChannel(currentSearchChannel, 1);

		timeId =startTimer(nextSearchInterval);
	}
	else
	{
		if(listenedChannel!=0)
		{
			if(m_voiceSwithFunction!=NULL)
				m_voiceSwithFunction(RM_VOICE_SWITCH_ON,m_voiceSwithUserData);

			if(freqSection ==RM_FREQ_SECTION_FM)
				selectFMChannel(listenedChannel,0);
			else
				selectAMChannel(listenedChannel,0);

			status =RM_STATUS_LISTEN;
		}
		else
		{
			closeRadio();
		}
        printf("~~~~~~~~~~~~~~~~~searchEnd Normally   \n");
		emit searchEnd(RM_SEARCH_R_OK);
	}

	printf("~~~~~~~~~~~~~~~~~searchEnd   returnm%d %d \n", lastSearchChannel, currentSearchChannel);
        return;
}
Exemplo n.º 11
0
int RadioManagerOld::openRadioAtChannel(int frequencySection,int channel,char searchFlag)
{
	if(status ==RM_STATUS_LISTEN || status ==RM_STATUS_SEARCH)
	{
		
		if(status ==RM_STATUS_SEARCH)
		{
			killTimer(timeId);
            //printf("[radio][%4d] ~~~~~~~~~~~~~~~~~searchEnd cause[%d]   \n", __LINE__, RM_SEARCH_R_CANCEL);
			emit searchChannelChanged(currentSearchChannel,0);
			emit searchEnd(RM_SEARCH_R_CANCEL);
		}

		status =RM_STATUS_OPENED;
	}

    printf("-++++++++++++++ open Radio start +++++++++++++++-\n");

	int rssi;
	int snr;
	
	if(frequencySection==RM_FREQ_SECTION_FM)
	{
		rssi = 20;
		snr = 3;
		readParameterConfig(RM_FREQ_SECTION_FM, &rssi, &snr);
        si47xxAMRX_powerdown();
        printf("------->[%s] FM rssi:%d snr:%d  +++++++++++++++-\n",__func__,rssi,snr);
	    si47xxFMRX_initialize( rssi, snr );
        si47xxFMRX_set_volume(30);     // full volume, turn off mute
	}
	else
	{
		rssi = 25;
		snr = 5;
		readParameterConfig(RM_FREQ_SECTION_AM, &rssi, &snr);
        si47xxFMRX_powerdown();
        printf("------->[%s] AM rssi:%d snr:%d  +++++++++++++++-\n",__func__,rssi,snr);
		si47xxAMRX_initialize( rssi, snr );
        si47xxAMRX_set_volume(30);     // full volume, turn off mute
    	
	}
	wait_ms(RM_SEARCHED_INTERVAL);



	if(frequencySection==RM_FREQ_SECTION_FM)
	{
		freqSection =RM_FREQ_SECTION_FM;
        printf("~~~~~~~~~~~~~~~~~~~~~~~~ select one FM chanel  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
		selectFMChannel(channel,searchFlag);

	}
	else
	{
		freqSection =RM_FREQ_SECTION_AM;
        printf("~~~~~~~~~~~~~~~~~~~~~~~~ select one AM chanel start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
		selectAMChannel(channel,searchFlag );
        printf("~~~~~~~~~~~~~~~~~~~~~~~~ select one AM chanel over ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
	}

	status =RM_STATUS_LISTEN;

	return RM_R_OK;
}