Пример #1
0
EXPORT_C void PlayerApplicationSettingsResourceInit::DefineAttributesL(MPlayerApplicationSettingsObserver& aSettings,
																CResourceFile& aResourceFile)
	{
	// Read the settings from the resource file
	RResourceReader reader;
	reader.OpenLC(&aResourceFile, KAVRCPResourceId);
	
	// Check the version of this resource file
	TUint16 formatVersion = reader.ReadUint16L();
	if (formatVersion != KAVRCPFormatVersion)
		{
		reader.Close();
		User::Leave(KErrCorrupt);
		}
	
	// Find out how many settings this resource file contains
	TInt settingsCount = reader.ReadUint16L();
	if (settingsCount < 0)
		{
		reader.Close();
		User::Leave(KErrCorrupt);
		}

	// read the settings from aResource
	RArray<TUint> values;
	RArray<TPtrC8> valueTexts;
	CleanupClosePushL(values);
 	CleanupClosePushL(valueTexts);

	// Read each AVRCP attribute setting in turn
	for (int i = 0; i < settingsCount; i++)
		{
		values.Reset();
		valueTexts.Reset();
		
		// Read attribute, description text, initial value and defined values
		TUint attributeID(reader.ReadUint8L());
		TUint initialValue(reader.ReadUint8L());
		TPtrC8 attributeText(reader.ReadTPtrC8L());
		TInt valuesCount(reader.ReadUint16L());

		for (int j = 0; j < valuesCount; j++)
			{
			TUint thisValue = reader.ReadUint8L();
			TPtrC8 thisDescription = reader.ReadTPtrC8L();
			
			values.AppendL(thisValue);
			valueTexts.AppendL(thisDescription);
			}
		
		// Now define this attribute, then continue to next attribute
		aSettings.DefineAttributeL(attributeID, attributeText, values, valueTexts, initialValue);
		}
	// cleaning up values and valueTexts
	 CleanupStack::PopAndDestroy(3); // values, valueTexts, reader
	}
Пример #2
0
queryList* FSqueryTool( queryList *listpointer )
{
	void getDirectoryPath( ) ;
	void attributeDATE( ) ;
	void attributeNAME( ) ;
	resultList* attributeID( query *, int ) ;
	
   	char oneLine[BUFFER_SIZE] ;	// one line from the an opened file
   	char *word ;			// a token during string tokenization
   	int numClauses ;
   	queryList *tempQueries ;	// a pointer to the query list arguement
   	resultList *tempResults ;
   	   	
   	getDirectoryPath( ) ;
  	
	tempQueries = listpointer ;
	tempResults = NULL ;
	
	while( tempQueries != NULL )
	{
		for( numClauses = 0 ; numClauses <= tempQueries -> oneQuery -> numClauses ; numClauses++ )
		{
			if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses].attribute, "ID" ) == 0 )
			{
				if( numClauses == 0 )
					tempResults = attributeID( tempQueries -> oneQuery, numClauses ) ;
				else
				{
					if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses-1].conjecture, "AND" ) == 0 )
						tempResults = andResult( tempResults, attributeID( tempQueries -> oneQuery, numClauses ) ) ;
			
					if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses-1].conjecture, "OR" ) == 0 )
						tempResults = orResult(tempResults, attributeID( tempQueries -> oneQuery, numClauses ) ) ;
				}
			}
	
			if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses].attribute, "DATE" ) == 0 )
			{
				char fileTime[22] = { '\0' } ;
				dateResults = NULL;
				
				formatTimeStamp( fileTime, tempQueries -> oneQuery -> myClauses[numClauses].value ) ;
				fileQueryTime = parsedate( fileTime, NULL) ;	
				
				strcpy( operatorType, tempQueries -> oneQuery -> myClauses[numClauses].operator ) ;
				attributeDATE( ) ;
				if( numClauses == 0 )
					tempResults = dateResults ;
				else
				{
					if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses-1].conjecture, "AND" ) == 0 )
						tempResults = andResult( tempResults, dateResults ) ;
	
					if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses-1].conjecture, "OR" ) == 0 )
						tempResults = orResult( tempResults, dateResults ) ;
				}
			}

			if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses].attribute, "NAME" ) == 0 )
			{
				nameResults = NULL;
				strcpy( operatorType, tempQueries -> oneQuery -> myClauses[numClauses].operator ) ;
				strcpy( queryName, tempQueries -> oneQuery -> myClauses[numClauses].value ) ;
				attributeNAME( ) ;
				if( numClauses == 0 )
					tempResults = nameResults ;
				else
				{
					if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses-1].conjecture, "AND" ) == 0 )
						tempResults = andResult( tempResults, nameResults ) ;
						
					if( strcmp( tempQueries -> oneQuery -> myClauses[numClauses-1].conjecture, "OR" ) == 0 )
						tempResults = orResult( tempResults, nameResults ) ;
				}
			}
			
		}
	
		while ( tempResults != NULL )
		{
			tempQueries -> oneQuery -> results = addResultItem( tempQueries -> oneQuery -> results, tempResults -> oneResult ) ;
			tempQueries -> oneQuery -> numFound++ ;
			tempResults = ( resultList* ) tempResults -> link ;
		}
		
		tempQueries = ( queryList* ) tempQueries -> link ;
	}
	return listpointer ;	
}