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()); } }
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(); }
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; }