package org.jactr.modules.pm.aural.memory; /* * default logging */ import javolution.util.FastList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.commonreality.identifier.IIdentifier; import org.jactr.core.chunk.IChunk; import org.jactr.modules.pm.aural.IAuralModule; import org.jactr.modules.pm.common.memory.PerceptualSearchResult; public class AuralUtilities { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(AuralUtilities.class); static public PerceptualSearchResult getSearchResult(IChunk locationChunk, IAuralMemory auralMemory) { FastList<PerceptualSearchResult> results = FastList.newInstance(); auralMemory.getRecentSearchResults(results); for (PerceptualSearchResult result : results) if (locationChunk==result.getLocation()) return result; FastList.recycle(results); return null; } /** * return search result with identifier * * @param perceptualIdentifier * @param auralMemory * @return */ static public PerceptualSearchResult getSearchResult( IIdentifier perceptualIdentifier, IAuralMemory auralMemory) { FastList<PerceptualSearchResult> results = FastList.newInstance(); auralMemory.getRecentSearchResults(results); for (PerceptualSearchResult result : results) if (result.getPerceptIdentifier().equals(perceptualIdentifier)) return result; FastList.recycle(results); return null; } /** * @param searchResult * @param auralMemory * @return */ static public IChunk getAuralEvent(PerceptualSearchResult searchResult, IAuralMemory auralMemory) { if (auralMemory.getLastSearchResult() != searchResult) return searchResult.getLocation(); /* * need to snag the screen-pos for visual object */ IChunk auralChunk = searchResult.getPercept(); return (IChunk) auralChunk.getSymbolicChunk().getSlot( IAuralModule.EVENT_SLOT).getValue(); } }