package org.jactr.modules.pm.vocal; /* * default logging */ import java.util.concurrent.Executor; import java.util.concurrent.Future; import org.commonreality.modalities.vocal.VocalizationCommand; import org.jactr.core.buffer.IActivationBuffer; import org.jactr.core.chunktype.IChunkType; import org.jactr.core.production.request.IRequest; import org.jactr.modules.pm.IPerceptualModule; import org.jactr.modules.pm.vocal.buffer.IVocalActivationBuffer; import org.jactr.modules.pm.vocal.event.IVocalModuleListener; import org.jactr.modules.pm.vocal.event.VocalModuleEvent; public interface IVocalModule extends IPerceptualModule { /** * defines how execution time conflicts are resolved between actr * and common reality * @author harrison * */ static enum ExecutionTimeResolution {MINIMUM,MAXIMUM,ACTR,CR}; static public final String CLEAR_CHUNK_TYPE = "clear"; static public final String SPEAK_CHUNK_TYPE = "speak"; static public final String SUBVOCALIZE_CHUNK_TYPE = "subvocalize"; static public final String STRING_SLOT = "string"; static public final String VOCAL_BUFFER = IActivationBuffer.VOCAL; static public final String PREPARATION_EQUATION = "PreparationTimeEquation"; static public final String VOCALIZATION_EQUATION = "VocalizationTimeEquation"; /** * returns the currently prepared, but not vocalized speach * @return */ public String getPreparedVocalization(); public IVocalExecutionTimeEquation getExecutionTimeEquation(); public IVocalPreparationTimeEquation getPreparationTimeEquation(); public IVocalProcessingTimeEquation getProcessingTimeEquation(); public IChunkType getSpeakChunkType(); public IChunkType getSubvocalizeChunkType(); public ExecutionTimeResolution getExecutionTimeResolution(); /** * reset the module */ public void reset(); public IVocalActivationBuffer getVocalBuffer(); // public void prepare(ChunkTypeRequest request, String text, boolean isVocalization); // // public void execute(IIdentifier commandId, boolean isVocalization); public Future<VocalizationCommand> prepare(IRequest request); public Future<VocalizationCommand> execute(VocalizationCommand command); public boolean hasListeners(); public void addListener(IVocalModuleListener listener, Executor executor); public void removeListener(IVocalModuleListener listener); public void dispatch(VocalModuleEvent event); }