TInt CJuikIconManagerImpl::AddIconL(TInt aProviderId, CGulIcon* aIcon)
{
	CALLSTACKITEM_N(_CL("CJuikIconManagerImpl"), _CL("AddIconL"));
	auto_ptr<CGulIcon> icon( aIcon );
	CArrayFix<TInt>& map = ProviderIconIndexL(aProviderId);
	
	TInt ix = KErrNotFound;
	if ( iEmptySlotCount > 0 )
		ix = FindEmptySlotL();
	
	if ( ix == KErrNotFound )
		{
			iIconArray->AppendL( icon.release() );					   
			map.AppendL( LastIndex( *iIconArray ) );
		}
	else
		{
			iEmptySlotCount--;
			if ( iEmptySlotCount < 0 ) Bug( _L("Empty slot count underflow") ).Raise();
			
			(*iIconArray)[ix] = icon.release();
			map.AppendL( ix );
		}
	return LastIndex( map );
}
Ejemplo n.º 2
0
void CItemsInfo::AddItem(CItemInfo* item)
{
    // clear cached maps (byname and bytag)
    m_ItemsByName.reset(0);
    m_ZeroTagIndex = kInvalidMember;
    m_ItemsByTag.reset(0);
    m_ItemsByOffset.reset(0);

    // update item's tag
    if ( !item->GetId().HaveExplicitTag() ) {
        TTag tag = CMemberId::eFirstTag;
        if ( !Empty() ) {
            TMemberIndex lastIndex = LastIndex();
            const CItemInfo* lastItem = GetItemInfo(lastIndex);
            if ( lastIndex != FirstIndex() ||
                 !lastItem->GetId().HaveParentTag() )
                tag = lastItem->GetId().GetTag() + 1;
        }
        item->GetId().SetTag(tag, false);
    }

    // add item
    m_Items.push_back(AutoPtr<CItemInfo>(item));
    item->m_Index = LastIndex();
}
Ejemplo n.º 3
0
PDOCKITEM AddDockItem(PDOCKHEADER pHeader, HWND hwnd, int index){
	PDOCKITEM		pItem, pTemp;

	pItem = (PDOCKITEM)calloc(1, sizeof(DOCKITEM));
	pItem->hwnd = hwnd;
	if(pHeader->count == 0){
		pHeader->pNext = pItem;
	}
	else{
		pTemp = pHeader->pNext;
		while(pTemp->pNext){
			pTemp = pTemp->pNext;
		}
		pTemp->pNext = pItem;
		pItem->pPrev = pTemp;
	}
	pHeader->count++;
	if(index == -1){
		pItem->index = LastIndex(pHeader);
	}
	else{
		pItem->index = index;
	}
	return pItem;
}
Ejemplo n.º 4
0
void Spectrum::Consume(const FFTFrame &frame)
{
	for (int i = 0; i < NumBands(); i++) {
		int first = FirstIndex(i);
		int last = LastIndex(i);
		double numerator = 0.0;
		double denominator = 0.0;
		for (int j = first; j < last; j++) {
			double s = frame[j];
			numerator += j * s;
			denominator += s;
		}
		m_features[i] = denominator / (last - first);
	}
	m_consumer->Consume(m_features);
}
Ejemplo n.º 5
0
TMemberIndex CItemsInfo::Find(TTag tag) const
{
    TMemberIndex zero_index = m_ZeroTagIndex;
    if ( zero_index == kInvalidMember && !m_ItemsByTag.get() ) {
        zero_index = GetItemsByTagInfo().first;
    }
    if ( zero_index != kInvalidMember ) {
        TMemberIndex index = tag + zero_index;
        if ( index < FirstIndex() || index > LastIndex() )
            return kInvalidMember;
        return index;
    }
    else {
        TItemsByTag::const_iterator mi = m_ItemsByTag->find(tag);
        if ( mi == m_ItemsByTag->end() )
            return kInvalidMember;
        return mi->second;
    }
}
Ejemplo n.º 6
0
TMemberIndex CItemsInfo::Find(TTag tag, TMemberIndex pos) const
{
    TMemberIndex zero_index = m_ZeroTagIndex;
    if ( zero_index == kInvalidMember && !m_ItemsByTag.get() ) {
        zero_index = GetItemsByTagInfo().first;
    }
    if ( zero_index != kInvalidMember ) {
        TMemberIndex index = tag + zero_index;
        if ( index < pos || index > LastIndex() )
            return kInvalidMember;
        return index;
    }
    else {
        for ( CIterator i(*this, pos); i.Valid(); ++i ) {
            if ( GetItemInfo(i)->GetId().GetTag() == tag )
                return *i;
        }
        return kInvalidMember;
    }
}
void CJuikIconManagerImpl::ReplaceIconL(TInt aProviderId, TInt aIconId, CGulIcon* aIcon)
{
	CALLSTACKITEM_N(_CL("CJuikIconManagerImpl"), _CL("ReplaceIconL"));
	auto_ptr<CGulIcon> icon( aIcon );
	CArrayFix<TInt>& map = ProviderIconIndexL(aProviderId);
	AssertIndexL( map, aIconId );

	TInt ix = map.At( aIconId );
	if ( ix != KErrNotFound ) 
		{
			AssertIndexL( *iIconArray, ix );	
			delete (*iIconArray)[ix];
			(*iIconArray)[ix] = icon.release();
		}
	else
		{
			iIconArray->AppendL( icon.release() );					   
			map[aIconId] = LastIndex( *iIconArray );
		}
}
TInt CJuikIconManagerImpl::GetNewProviderIdL()
{
	CALLSTACKITEM_N(_CL("CJuikIconManagerImpl"), _CL("GetNewProviderIdL"));
	TInt providerIx = KErrNotFound;
	for ( TInt i = 0; i < iProviderIconIndexes->Count(); i++)
		{
			if ( iProviderIconIndexes->At(i) == NULL )
				{
					providerIx = i;
					break;
				}
		}
	
	if ( providerIx == KErrNotFound )
		{
			iProviderIconIndexes->AppendL( new (ELeave) CArrayFixFlat<TInt>(3) );
			return LastIndex( *iProviderIconIndexes );
		}
	else
		{
			(*iProviderIconIndexes)[providerIx] =  new (ELeave) CArrayFixFlat<TInt>(3);
			return providerIx;
		}
}