⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cirqueue.cpp

📁 我写的基于2410的音频播放的程序
💻 CPP
字号:
/*
  Circle Queue Define for 
  CLient  Buffer for Sampling and NetWork Send Operation
  Server Buffer for RePlaying and NetWork Receive Operation
  
  Fu QingYun 2007-05-15
*/
#include <memory.h>
#include "cirqueue.h"

// Constructor to Initialize Circle Queue Buffer
CirQueue::CirQueue()
{
    // Fill Zero of Sample Buffer
    memset(data, 0, sizeof(data));
    
    // Set Queue Size & Queue Head Index & Queue Tail Index
    cursize = 0;
    head = 0;
    tail = 0;
}

// Judge whether Circle Queue is Empty
bool CirQueue::IsEmpty()
{
    if (cursize == 0)
        return true;
    else
        return false;
}

// Judge whether Circle Queue is Full
bool CirQueue::IsFull()
{
    if (cursize == QueueSize)
        return true;
    else
        return false;
}

// Insert a Sample to Circle Queue
bool CirQueue::Insert(char * inbuf, int &data_len)
{
    if (IsFull())
        return false;
    else
    {
        memcpy(data[tail], inbuf, data_len);
        data_size[tail] = data_len;
        cursize++;
        tail++;
        if(tail == QueueSize)
            tail = 0;
        return true;
    }
}

// Get a Sample from Circle Queue
bool CirQueue::Remove(char * inbuf, int &data_len)
{
    if (IsEmpty())
        return false;
    else
    {
        memcpy(inbuf, data[head], SampleSize);
        data_len = data_size[head];
        cursize--;
        head++;
        if(head == QueueSize)
            head = 0;
        return true;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -