void MatLabEngine::executeInteractiveCommands( void ) {

	std::string command;
	while( true ) {

		char *commandString = readline( ">> " );
		if ( !commandString ) {
			continue;
		}
		if ( *commandString ) {
			add_history( commandString );
		}
		command = commandString;
		free( commandString );

		if (  command.substr( 0, 4 ) == "quit"  ) {
			break;
		}

		zeroBuffer();

		if (  engEvalString( _ep, command.c_str() )  !=  0  ) {
			_ep = 0;
			throw MatLabUdm::Exception( "MatLab connection lost." );
		}
		std::string output( getBuffer() );
		output = output.substr( output.find( '\n' ) + 1 );
		std::cout << output << std::endl;
	}
}
Exemple #2
0
// TODO: should we write ones rather than zeros?
void MultiplySP::step(stk::StkFrames& buffer, Tick tick, bool is_new_event) {
    if (sources_.size() == 0) {
        zeroBuffer(buffer);
    } else {
        // first source is written directly.
        SampleProcessor *source = sources_.at(0);
        source->step(buffer, tick, is_new_event);
        for (long int i=1; i<sources_.size(); i++) {
            source = sources_.at(i);
            Tick buffer_start = tick;
            Tick buffer_end = tick + buffer.frames();
            Tick source_start = source->getStart();
            Tick source_end = source->getEnd();
            // TODO: write general SP::is_overlapping() method
            if ((TickUtils::isIndefinite(source_start) || (source_start < buffer_end)) &&
                    (TickUtils::isIndefinite(source_end) || (source_end > buffer_start))) {
                buffer_.resize(buffer.frames(), buffer.channels());
                source->step(buffer_, tick, is_new_event);
                stk::StkFloat *dst = &(buffer[0]);
                stk::StkFloat *src = &(buffer_[0]);
                for (int i=buffer.size()-1; i>=0; i--) {
                    *dst++ *= *src++;
                }
            }
        }
    }
}
/* Output appropriate for width * height real1 elements */
static CALresult createOutputBuffer2D(MWMemRes* mr, MWCALInfo* ci, CALuint width, CALuint height)
{
    CALresult err;
    CALuint flags = 0;
    //CALuint flags = CAL_RESALLOC_GLOBAL_BUFFER;

    err = calResAllocLocal2D(&mr->res, ci->dev, width, height, formatReal2, flags);
    if (err != CAL_RESULT_OK)
    {
        cal_warn("Failed to create output resource", err);
        releaseMWMemRes(ci->calctx, mr);
        return err;
    }

    err = zeroBuffer(mr, 2, width, height);
    if (err != CAL_RESULT_OK)
    {
        cal_warn("Failed to zero output buffer", err);
        return err;
    }

    /* Get the handle for the context */
    err = getMemoryHandle(mr, ci);
    if (err != CAL_RESULT_OK)
    {
        cal_warn("Failed to create handle for output buffer", err);
        return err;
    }

    return CAL_RESULT_OK;
}
//-----------------------------------------------------------------------------------------
void gsBEncoder::processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames)
{
	int nin = (int)inputBuffers.size();
	int nout = (int)outputBuffers.size();
	int n = 0;
	while(n < sampleFrames) {
		int toprocess = MIN(bufferSize, (sampleFrames-n));
			
		for(int i=0; i < nin; i++) {
			FloatToSample(inputBuffers[i], inputs[i]+n, toprocess);
		}
		for(int i=nin; i < inputBuffers.size(); i++) {
			zeroBuffer(inputBuffers[i], toprocess);
		}
			
		perform(
			gen,
			&(inputBuffers[0]), inputBuffers.size(),
			&(outputBuffers[0]), outputBuffers.size(),
			toprocess
		);
			
		for(int i=0; i < nout; i++) {
			FloatFromSample(outputs[i]+n, outputBuffers[i], toprocess);
		}

		n += toprocess;
	}
}
void listHandler(char *buffer, int sock)
{
    printf("\nlisting users\n");
    int loc = 0;
    int x = 0;
    zeroBuffer(buffer);
    
    for (x = 0; x < MAX_USERS; x++) //grab all the users and print their names
    {
        if (users[x].username[0] != 0)
        {
            int len = strlen(users[x].username);
            int y = 0;
            
            for (y = 0; y < len; y++)
            {
                buffer[loc] =  users[x].username[y];
                loc++;
            }
            buffer[loc] =  '\n';
            loc++;
        }
    }
    //send the message
    printf("%s",buffer);
    writeMessageDefined(sock, buffer);
}
void usernameHandler(char *buffer, int sock) //handles username requests
{
    grabContents(buffer); //get the actual message minus command
    chop(buffer); //chop off anything extraneous
    
    int x = 0;
    
    for (x = 0; x < MAX_USERS; x++) //check username with all users and return bad if not found
    {
        if (strcmp(users[x].username, buffer) == 0)
        {
            char tempBuffer[MAX_MESSAGE_SIZE];
            sprintf(tempBuffer, " %dError: username '%s' all ready taken\n", NAME_TAKEN, buffer);
            writeMessageDefined(sock, tempBuffer);
            return;
        }
    }
    
    //if good return a good call and establish the username
    sprintf(users[sock].username, "%s", buffer);
    printf("\nUsername established: %s\n", users[sock].username);  
    
    zeroBuffer(buffer);
    sprintf(buffer, "Server: Username established '%s'\n", users[sock].username);
    
    writeMessageDefined(sock, buffer);
}
void portHandler(char *buffer, int sock) //saves port to user for chatting
{
    grabContents(buffer);
    
    users[sock].address.sin_port = atoi(buffer);
    
    printf("Port established for user '%s': %u\n", users[sock].username, users[sock].address.sin_port); 
    
    zeroBuffer(buffer);
    
    sprintf(buffer, "Port established: %u\n", users[sock].address.sin_port);
    writeMessageDefined(sock, buffer);
}
Exemple #8
0
  void LinsegSP::step(stk::StkFrames& buffer, Tick tick, bool is_new_event) {
    if (breakpoints_.size() == 0) {
      zeroBuffer(buffer);

    } else {
      int frame_count = buffer.frames();
      int channel_count = buffer.channels();
      for (int frame=0; frame<frame_count; frame++) {
        for (int channel=0; channel<channel_count; channel++) {
          buffer(frame, channel) = lerp(tick + frame);
        }
      }
    }
  }
void readMessage(char *buffer, int sock) //parse the commands read
{
    int readStatus;
    zeroBuffer(buffer);
    readStatus = read(sock, buffer, MAX_MESSAGE_SIZE);
        
    printf("command read: %d\n", (int)buffer[COMMAND_LOCATION]);
    
    switch ((int)buffer[COMMAND_LOCATION]) 
    {
        case PORT:
            portHandler(buffer, sock);
            break;
            
        case USERNAME:
            usernameHandler(buffer, sock);
            break;
            
        case DISCONNECT:
            disconnectHandler(buffer, sock);
            break;
            
        case LIST_USERS:
            listHandler(buffer, sock);
            break;
            
        case MESSAGE:
            messageUserHandler(buffer, sock);
            break;
            
        default:
            printf("\nCommand not supported: (%d)\n", buffer[COMMAND_LOCATION]);
            writeMessageDefined(sock, buffer);
            break;
    }
    
    if (readStatus < 0)
    {
        error("ERROR reading from socket");
    }
    else
    {
        if(!chop(buffer)) //remove any unwanted characters
        {            
            memset(buffer, 0, MAX_MESSAGE_SIZE);
            buffer = TIMEOUT_CALL;
        }
    }
}
Exemple #10
0
bool PagesLFB::resize(vec2i dim)
{
    if (!LinkedLFB::resize(dim))
        return false;

    semaphores->resize(sizeof(unsigned int) * totalPixels);
    counts->resize(sizeof(unsigned int) * totalPixels);

    memory["Semaphores"] = semaphores->size();
    memory["Counts"] = counts->size();

    zeroBuffer(semaphores);

    return true;
}
void
WebGLContext::BufferData(GLenum target, WebGLsizeiptr size, GLenum usage)
{
    if (IsContextLost())
        return;

    if (!ValidateBufferTarget(target, "bufferData"))
        return;

    WebGLRefPtr<WebGLBuffer>& bufferSlot = GetBufferSlotByTarget(target);

    if (size < 0)
        return ErrorInvalidValue("bufferData: negative size");

    if (!ValidateBufferUsageEnum(usage, "bufferData: usage"))
        return;

    // careful: WebGLsizeiptr is always 64-bit, but GLsizeiptr is like intptr_t.
    if (!CheckedInt<GLsizeiptr>(size).isValid())
        return ErrorOutOfMemory("bufferData: bad size");

    WebGLBuffer* boundBuffer = bufferSlot.get();

    if (!boundBuffer)
        return ErrorInvalidOperation("bufferData: no buffer bound!");

    UniquePtr<uint8_t> zeroBuffer((uint8_t*)calloc(size, 1));
    if (!zeroBuffer)
        return ErrorOutOfMemory("bufferData: out of memory");

    MakeContextCurrent();
    InvalidateBufferFetching();

    GLenum error = CheckedBufferData(target, size, zeroBuffer.get(), usage);

    if (error) {
        GenerateWarning("bufferData generated error %s", ErrorName(error));
        return;
    }

    boundBuffer->SetByteLength(size);
    if (!boundBuffer->ElementArrayCacheBufferData(nullptr, size)) {
        return ErrorOutOfMemory("bufferData: out of memory");
    }
}
Exemple #12
0
void dng_stream::PutZeros (uint64 count)
	{
	
	const uint32 kZeroBufferSize = 4096;
	
	if (count >= kZeroBufferSize)
		{
		
		dng_memory_data zeroBuffer (kZeroBufferSize);
		
		DoZeroBytes (zeroBuffer.Buffer (), 
					 kZeroBufferSize);
		
		while (count)
			{
			
			uint64 blockSize = Min_uint64 (count, kZeroBufferSize);
			
			Put (zeroBuffer.Buffer (), (uint32) blockSize);
			
			count -= blockSize;
			
			}
		
		}
		
	else
		{
		
		uint32 count32 = (uint32) count;
	
		for (uint32 j = 0; j < count32; j++)
			{
			
			Put_uint8 (0);
			
			}
			
		}
	
	}
Exemple #13
0
 void FileReadSP::step(stk::StkFrames& buffer, Tick tick, bool is_new_event) {
   if (!file_read_.isOpen()) {
     file_read_.open(file_name_);
   }
   Tick s = std::max((long)0, (long)tick);
   Tick e = std::min((long)(file_read_.fileSize()), (long)(tick+buffer.frames()));
   Tick n_frames = e - s;
   if (n_frames <= 0) {
     // no overlap at all
     zeroBuffer(buffer);
   } else if (n_frames == buffer.frames()) {
     // file spans whole buffer
     file_read_.read(buffer, s, do_normalize_);
   } else {
     // partial overlap.  Read into a temp buffer and copy
     // the active part into buffer.
     temp_buffer_.resize(n_frames, buffer.channels());
     file_read_.read(temp_buffer_, s, do_normalize_);
     copyBuffer(temp_buffer_, 0, buffer, s - tick, n_frames);
   }
 }
    void forward(std::vector<Mat*> &inputs, std::vector<Mat> &outputs, std::vector<Mat> &internals)
    {
        CV_TRACE_FUNCTION();
        CV_TRACE_ARG_VALUE(name, "name", name.c_str());

        checkInputs(inputs);

        Mat& buffer = internals[0], sumChannelMultiplier = internals[1],
                sumSpatialMultiplier = internals[2];

        sumChannelMultiplier.setTo(1.0);
        sumSpatialMultiplier.setTo(1.0);

        const Mat& inp0 = *inputs[0];
        size_t num = inp0.size[0];
        size_t channels = inp0.size[1];
        size_t channelSize = inp0.size[2] * inp0.size[3];

        Mat zeroBuffer(channels, channelSize, CV_32F, Scalar(0));
        Mat absDiff;
        Mat scale = blobs[0];
        for (size_t j = 0; j < inputs.size(); j++)
        {
            for (size_t n = 0; n < num; ++n)
            {
                Mat src = Mat(channels, channelSize, CV_32F, inputs[j]->ptr<float>(n));
                Mat dst = Mat(channels, channelSize, CV_32F, outputs[j].ptr<float>(n));

                buffer = src.mul(src);

                if (_across_spatial)
                {
                    absdiff(buffer, zeroBuffer, absDiff);

                    // add eps to avoid overflow
                    double absSum = sum(absDiff)[0] + _eps;

                    float norm = sqrt(absSum);
                    dst = src / norm;
                }
                else
                {
                    Mat norm(channelSize, 1, buffer.type()); // 1 x channelSize

                    // (_channels x channelSize)T * _channels x 1 -> channelSize x 1
                    gemm(buffer, sumChannelMultiplier, 1, norm, 0, norm, GEMM_1_T);

                    // compute norm
                    pow(norm, 0.5f, norm);

                    // scale the layer
                    // _channels x 1 * (channelSize x 1)T -> _channels x channelSize
                    gemm(sumChannelMultiplier, norm, 1, buffer, 0, buffer, GEMM_2_T);

                    dst = src / buffer;
                }

                // scale the output
                if (_channel_shared)
                {
                    // _scale: 1 x 1
                    dst *= scale.at<float>(0, 0);
                }
                else
                {
                    // _scale: _channels x 1
                    // _channels x 1 * 1 x channelSize -> _channels x channelSize
                    gemm(scale, sumSpatialMultiplier, 1, buffer, 0, buffer);

                    dst = dst.mul(buffer);
                }
            }
        }
    }
Exemple #15
0
void PagesLFB::initBuffers()
{
    LinkedLFB::initBuffers();
    zeroBuffer(counts);
    //don't need to zero semaphores each render
}
void disconnectHandler(char *buffer, int sock)
{
    memset(users[sock].username, 0, USERNAME_SIZE); //clear out that users name
    zeroBuffer(buffer);
}