Beispiel #1
0
size_t wxStreamBuffer::Read(void *buffer, size_t size)
{
    wxASSERT_MSG( buffer, _T("Warning: Null pointer is about to be used") );

    /* Clear buffer first */
    memset(buffer, 0x00, size);

    // lasterror is reset before all new IO calls
    if ( m_stream )
        m_stream->Reset();

    size_t readBytes;
    if ( !HasBuffer() )
    {
        wxInputStream *inStream = GetInputStream();

        wxCHECK_MSG( inStream, 0, _T("should have a stream in wxStreamBuffer") );

        readBytes = inStream->OnSysRead(buffer, size);
    }
    else // we have a buffer, use it
    {
        size_t orig_size = size;

        while ( size > 0 )
        {
            size_t left = GetDataLeft();

            // if the requested number of bytes if greater than the buffer
            // size, read data in chunks
            if ( size > left )
            {
                GetFromBuffer(buffer, left);
                size -= left;
                buffer = (char *)buffer + left;

                if ( !FillBuffer() )
                {
                    SetError(wxSTREAM_EOF);
                    break;
                }
            }
            else // otherwise just do it in one gulp
            {
                GetFromBuffer(buffer, size);
                size = 0;
            }
        }

        readBytes = orig_size - size;
    }

    if ( m_stream )
        m_stream->m_lastcount = readBytes;

    return readBytes;
}
void Poglos(void)
{
	int value = (iChannel0RightIn + iChannel0LeftIn) / 2;
    Buffor[Buffor_Pozycja] = value;

    iChannel0LeftOut  = value / 2 + GetFromBuffer(6000) / 4 + GetFromBuffer(5000) / 8 + GetFromBuffer(4000) / 8;
    iChannel0RightOut = iChannel0LeftOut;
   
    Buffor_Pozycja = (Buffor_Pozycja + 1) % BUFFOR_SIZE;
}
Beispiel #3
0
char wxStreamBuffer::GetChar()
{
    wxInputStream *inStream = GetInputStream();

    wxCHECK_MSG( inStream, 0, _T("should have a stream in wxStreamBuffer") );

    char c;
    if ( !HasBuffer() )
    {
        inStream->OnSysRead(&c, sizeof(c));
    }
    else
    {
        if ( !GetDataLeft() )
        {
            SetError(wxSTREAM_READ_ERROR);
            c = 0;
        }
        else
        {
            GetFromBuffer(&c, sizeof(c));
            m_stream->m_lastcount = 1;
        }
    }

    return c;
}
void Echo(void)
{
	int value = (iChannel0RightIn + iChannel0LeftIn) / 2;
    Buffor[Buffor_Pozycja] = value;

    iChannel0LeftOut  = value / 2 + GetFromBuffer(1) / 4;
    iChannel0RightOut = iChannel0LeftOut;
   
    Buffor_Pozycja = (Buffor_Pozycja + 1) % BUFFOR_SIZE;
}
Beispiel #5
0
static void
k_read(char *buff, int size)
{
	int i=0;
	_Cli();
	while( !BufferIsEmpty() && i< size ) {

		buff[i] = GetFromBuffer() ;
		i++;
	}

	_Sti();

}
Beispiel #6
0
char wxStreamBuffer::Peek()
{
    wxCHECK_MSG( m_stream && HasBuffer(), 0,
                 _T("should have the stream and the buffer in wxStreamBuffer") );

    if ( !GetDataLeft() )
    {
        SetError(wxSTREAM_READ_ERROR);
        return 0;
    }

    char c;
    GetFromBuffer(&c, sizeof(c));
    m_buffer_pos--;

    return c;
}