void AudioPlayer::load(QVariantMap &d)
{
    QMap<QString, QVariant>::const_iterator i = d.constBegin();
    while (i != d.constEnd())
    {
        playerData[i.key()] = i.value();
        ++i;
    }

    update_status(Common::audioStatusFromString(playerData["status"].toString()));
    update_id(playerData["id"].toString());
    update_cover(playerData["cover_url"].toString());
    update_name(playerData["name"].toString());
    update_volume(playerData["volume"].toDouble());

    qDebug() << "New player loaded: " << get_name();

    QVariantMap currentTrack = playerData["current_track"].toMap();
    update_title(currentTrack["title"].toString());
    update_album(currentTrack["album"].toString());
    update_artist(currentTrack["artist"].toString());

    connect(connection, SIGNAL(eventAudioChange(QString)),
            this, SLOT(audioChanged(QString)));
    connect(connection, SIGNAL(eventAudioStateChange(QVariantMap)),
            this, SLOT(audioStateChanged(QVariantMap)));
    connect(connection, SIGNAL(eventAudioStatusChange(QString,QString)),
            this, SLOT(audioStatusChanged(QString,QString)));
    connect(connection, SIGNAL(eventAudioVolumeChange(QString,double)),
            this, SLOT(audioVolumeChanged(QString,double)));

    if (!loaded)
    {
        loaded = true;
        audioChanged(get_id());
    }
}
Exemple #2
0
static int lcd_on_seq(struct msm_fb_data_type *mfd)
{
	int	txCnt;
	int	txAmount;
	int	ret = 0;
	volatile int	isFailed_TX = FALSE;
	unsigned int	acl_level;

	int i;
	char pBuffer[256];
	
#if 1
	// in result of test, gamma update can update before gammaTableCommand of LCD-ON-sequence.
	// if update gamma after gammaTableCommand cannot be update to lcd
	// if update gamma after displayOnCommand cannot be update lcd.
	// so gammaTableCommand is moved to ahead of displayOnCommand.

	mutex_lock(&(s6e8aa0_lcd.lock));

	if( s6e8aa0_lcd.lcd_state.initialized )	{
		DPRINT("%s : Already ON -> return 1\n", __func__ );
		ret = 1;
	}
	else {
		DPRINT("%s +\n", __func__);

		txAmount = ARRAY_SIZE(s6e8aa0_display_on_before_read_id);
		txCnt = mipi_dsi_cmds_tx(mfd, &s6e8aa0_tx_buf, s6e8aa0_display_on_before_read_id,
				txAmount );    
		if( txAmount != txCnt )	
		{
			isFailed_TX = TRUE;
			goto failed_tx_lcd_on_seq;
		}

		if( !s6e8aa0_lcd.isSmartDimming_loaded )
		{
			read_reg( MTP_REGISTER, MTP_DATA_SIZE, lcd_mtp_data, FALSE );
#if 0 // kyNam_110915_ do not check MTP-Fail-check			
			for( i=0, j=0; i < MTP_DATA_SIZE; i++ ) if(lcd_mtp_data[i]==0) j++;
			if( j > MTP_DATA_SIZE/2 )
			{
				DPRINT( "MTP Load FAIL\n" );
				s6e8aa0_lcd.isSmartDimming_loaded = FALSE;
				isFAIL_mtp_load = TRUE;

#ifdef SmartDimming_useSampleValue
				for( i = 0; i < MTP_DATA_SIZE; i++ )	 lcd_mtp_data[i] = lcd_mtp_data_default[i];
				s6e8aa0_lcd.isSmartDimming_loaded = TRUE;
#endif 				
			} 
			else 
#endif 			
			{
				sprintf( pBuffer, "mtp :" );
				for( i = 0; i < MTP_DATA_SIZE; i++ )	sprintf( pBuffer+strlen(pBuffer), " %02x", lcd_mtp_data[i] );
				DPRINT( "%s\n", pBuffer );

				s6e8aa0_lcd.isSmartDimming_loaded = TRUE;
			}
		}

		if( s6e8aa0_lcd.factory_id_line == lcd_id_unknown )
		{
			read_reg( 0xD1, LCD_ID_BUFFER_SIZE, s6e8aa0_lcd.lcd_id_buffer, FALSE );
			update_id( s6e8aa0_lcd.lcd_id_buffer, &s6e8aa0_lcd );
			update_LCD_SEQ_by_id( &s6e8aa0_lcd );
		}

		txAmount = ARRAY_SIZE(s6e8aa0_display_on_before_gamma_cmds);
		txCnt = mipi_dsi_cmds_tx(mfd, &s6e8aa0_tx_buf, s6e8aa0_display_on_before_gamma_cmds,
				txAmount );    

		if( txAmount != txCnt )	
		{
			isFailed_TX = TRUE;
			goto failed_tx_lcd_on_seq;
		}

		// update stored-gamma value to gammaTable

		if( s6e8aa0_lcd.isSmartDimming )
		{
			lcd_gamma_smartDimming_apply( mfd, s6e8aa0_lcd.stored_gamma );
		} 
		else {
			lcd_gamma_apply( mfd, s6e8aa0_lcd.stored_gamma );
		}
		s6e8aa0_lcd.lcd_gamma = s6e8aa0_lcd.stored_gamma;
		
		// set elvss
		lcd_apply_elvss(mfd, s6e8aa0_lcd.stored_elvss, &s6e8aa0_lcd);
		s6e8aa0_lcd.lcd_elvss = s6e8aa0_lcd.stored_elvss;

		// set acl 
		if( s6e8aa0_lcd.enabled_acl ) acl_level	= s6e8aa0_lcd.stored_acl;
		else acl_level = 0;
		lcd_apply_acl( mfd, acl_level, TRUE );
		s6e8aa0_lcd.lcd_acl = acl_level; 

		mipi_dsi_cmds_tx(mfd, &s6e8aa0_tx_buf, s6e8aa0_display_on_after_gamma_cmds,
				ARRAY_SIZE(s6e8aa0_display_on_after_gamma_cmds));    

		s6e8aa0_lcd.lcd_state.initialized = TRUE;
		s6e8aa0_lcd.lcd_state.display_on = TRUE;
		s6e8aa0_lcd.lcd_state.powered_up = TRUE;

		DPRINT("%s - : gamma=%d, ACl=%d, Elvss=%d\n", __func__, s6e8aa0_lcd.lcd_gamma, s6e8aa0_lcd.lcd_acl, s6e8aa0_lcd.lcd_elvss );

failed_tx_lcd_on_seq:
		if( isFailed_TX ) {
			s6e8aa0_lcd.factory_id_line = lcd_id_unknown;
			DPRINT("%s : tx FAILED\n", __func__ );
		}
	}
	mutex_unlock(&(s6e8aa0_lcd.lock));
#else // regal process
	mutex_lock(&(s6e8aa0_lcd.lock));
    // lcd_panel_init
	mipi_dsi_cmds_tx(mfd, &s6e8aa0_tx_buf, s6e8aa0_display_on_cmds,
			ARRAY_SIZE(s6e8aa0_display_on_cmds));    
	s6e8aa0_lcd.lcd_state.initialized = TRUE;
	s6e8aa0_lcd.lcd_state.display_on = TRUE;
	s6e8aa0_lcd.lcd_state.powered_up = TRUE;
	mutex_unlock(&(s6e8aa0_lcd.lock));
#endif 

	return ret;
}
 IndexList(): N(SIZE) {
   update_id();
   update_lr();
 }
 template <class Func> void sort( Func func ) {
   std::sort(std::begin(id) + OFFSET, std::begin(id) + OFFSET + N, func);
   update_id();
 }
Exemple #5
0
	error_code ContentDirectory::Browse(const client_info_ptr& client,
	                                    const http::http_request& /*http_request*/,
	                                    /* IN  */ const std::string& ObjectID,
	                                    /* IN  */ A_ARG_TYPE_BrowseFlag BrowseFlag,
	                                    /* IN  */ const std::string& Filter,
	                                    /* IN  */ ui4 StartingIndex,
	                                    /* IN  */ ui4 RequestedCount,
	                                    /* IN  */ const std::string& /*SortCriteria*/,
	                                    /* OUT */ std::string& Result,
	                                    /* OUT */ ui4& NumberReturned,
	                                    /* OUT */ ui4& TotalMatches,
	                                    /* OUT */ ui4& UpdateID)
	{
		if (BrowseFlag == A_ARG_TYPE_BrowseFlag_UNKNOWN)
			return error::invalid_action;

		std::ostringstream value;
		NumberReturned = 0;
		TotalMatches = 0;
		UpdateID = m_device->system_update_id();

		{
			value << R"(<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/">)" "\n";
			auto item = m_device->get_item(ObjectID);

			if (item)
				log::debug() << type_info<A_ARG_TYPE_BrowseFlag>::to_string(BrowseFlag) << " [" << ObjectID << "] \"" << item->get_title() << "\"";
			else
				log::warning() << type_info<A_ARG_TYPE_BrowseFlag>::to_string(BrowseFlag) << " [" << ObjectID << "] failed";

			if (item)
			{
				auto client_ptr = std::static_pointer_cast<client_interface>(client);
				auto filter = parse_filter(Filter);

				if (BrowseFlag == VALUE_BrowseDirectChildren)
				{
					auto children = item->list(StartingIndex, RequestedCount);
					for (auto && child : children)
					{
						log::debug() << "    [" << child->get_objectId_attr() << "] \"" << child->get_title() << "\"";
						child->output(value, filter, client_ptr, m_device->config());
					}

					NumberReturned = children.size();
					TotalMatches = item->predict_count(StartingIndex + NumberReturned);
				}
				else
				{
					item->check_updates();
					item->output(value, filter, client_ptr, m_device->config());
					NumberReturned = 1;
					TotalMatches = 1;
				}

				// could change during the item->list
				UpdateID = item->update_id();
			}

			value << "</DIDL-Lite>";
		}

		Result = std::move(value.str());
		return error::no_error;
	}