mirror of
https://github.com/danog/libtgvoip.git
synced 2025-01-22 13:01:21 +01:00
Removed unused files
This commit is contained in:
parent
b1a0b3d94a
commit
467b1487e8
@ -1,113 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#include "BufferInputStream.h"
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <exception>
|
||||
#include <stdexcept>
|
||||
|
||||
using namespace tgvoip;
|
||||
|
||||
BufferInputStream::BufferInputStream(unsigned char* data, size_t length){
|
||||
this->buffer=data;
|
||||
this->length=length;
|
||||
offset=0;
|
||||
}
|
||||
|
||||
BufferInputStream::~BufferInputStream(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
void BufferInputStream::Seek(size_t offset){
|
||||
if(offset>length){
|
||||
throw std::out_of_range("Not enough bytes in buffer");
|
||||
}
|
||||
this->offset=offset;
|
||||
}
|
||||
|
||||
size_t BufferInputStream::GetLength(){
|
||||
return length;
|
||||
}
|
||||
|
||||
size_t BufferInputStream::GetOffset(){
|
||||
return offset;
|
||||
}
|
||||
|
||||
size_t BufferInputStream::Remaining(){
|
||||
return length-offset;
|
||||
}
|
||||
|
||||
unsigned char BufferInputStream::ReadByte(){
|
||||
EnsureEnoughRemaining(1);
|
||||
return (unsigned char)buffer[offset++];
|
||||
}
|
||||
|
||||
int32_t BufferInputStream::ReadInt32(){
|
||||
EnsureEnoughRemaining(4);
|
||||
int32_t res=((int32_t)buffer[offset] & 0xFF) |
|
||||
(((int32_t)buffer[offset+1] & 0xFF) << 8) |
|
||||
(((int32_t)buffer[offset+2] & 0xFF) << 16) |
|
||||
(((int32_t)buffer[offset+3] & 0xFF) << 24);
|
||||
offset+=4;
|
||||
return res;
|
||||
}
|
||||
|
||||
int64_t BufferInputStream::ReadInt64(){
|
||||
EnsureEnoughRemaining(8);
|
||||
int64_t res=((int64_t)buffer[offset] & 0xFF) |
|
||||
(((int64_t)buffer[offset+1] & 0xFF) << 8) |
|
||||
(((int64_t)buffer[offset+2] & 0xFF) << 16) |
|
||||
(((int64_t)buffer[offset+3] & 0xFF) << 24) |
|
||||
(((int64_t)buffer[offset+4] & 0xFF) << 32) |
|
||||
(((int64_t)buffer[offset+5] & 0xFF) << 40) |
|
||||
(((int64_t)buffer[offset+6] & 0xFF) << 48) |
|
||||
(((int64_t)buffer[offset+7] & 0xFF) << 56);
|
||||
offset+=8;
|
||||
return res;
|
||||
}
|
||||
|
||||
int16_t BufferInputStream::ReadInt16(){
|
||||
EnsureEnoughRemaining(2);
|
||||
int16_t res=(uint16_t)buffer[offset] | ((uint16_t)buffer[offset+1] << 8);
|
||||
offset+=2;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
int32_t BufferInputStream::ReadTlLength(){
|
||||
unsigned char l=ReadByte();
|
||||
if(l<254)
|
||||
return l;
|
||||
assert(length-offset>=3);
|
||||
EnsureEnoughRemaining(3);
|
||||
int32_t res=((int32_t)buffer[offset] & 0xFF) |
|
||||
(((int32_t)buffer[offset+1] & 0xFF) << 8) |
|
||||
(((int32_t)buffer[offset+2] & 0xFF) << 16);
|
||||
offset+=3;
|
||||
return res;
|
||||
}
|
||||
|
||||
void BufferInputStream::ReadBytes(unsigned char *to, size_t count){
|
||||
EnsureEnoughRemaining(count);
|
||||
memcpy(to, buffer+offset, count);
|
||||
offset+=count;
|
||||
}
|
||||
|
||||
BufferInputStream BufferInputStream::GetPartBuffer(size_t length, bool advance){
|
||||
EnsureEnoughRemaining(length);
|
||||
BufferInputStream s=BufferInputStream(buffer+offset, length);
|
||||
if(advance)
|
||||
offset+=length;
|
||||
return s;
|
||||
}
|
||||
|
||||
void BufferInputStream::EnsureEnoughRemaining(size_t need){
|
||||
if(length-offset<need){
|
||||
throw std::out_of_range("Not enough bytes in buffer");
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#ifndef LIBTGVOIP_BUFFERINPUTSTREAM_H
|
||||
#define LIBTGVOIP_BUFFERINPUTSTREAM_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
namespace tgvoip{
|
||||
class BufferInputStream{
|
||||
|
||||
public:
|
||||
BufferInputStream(unsigned char* data, size_t length);
|
||||
~BufferInputStream();
|
||||
void Seek(size_t offset);
|
||||
size_t GetLength();
|
||||
size_t GetOffset();
|
||||
size_t Remaining();
|
||||
unsigned char ReadByte();
|
||||
int64_t ReadInt64();
|
||||
int32_t ReadInt32();
|
||||
int16_t ReadInt16();
|
||||
int32_t ReadTlLength();
|
||||
void ReadBytes(unsigned char* to, size_t count);
|
||||
BufferInputStream GetPartBuffer(size_t length, bool advance);
|
||||
|
||||
private:
|
||||
void EnsureEnoughRemaining(size_t need);
|
||||
unsigned char* buffer;
|
||||
size_t length;
|
||||
size_t offset;
|
||||
};
|
||||
}
|
||||
|
||||
#endif //LIBTGVOIP_BUFFERINPUTSTREAM_H
|
@ -1,104 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#include "BufferOutputStream.h"
|
||||
#include <stdexcept>
|
||||
#include <string.h>
|
||||
|
||||
using namespace tgvoip;
|
||||
|
||||
BufferOutputStream::BufferOutputStream(size_t size){
|
||||
buffer=(unsigned char*) malloc(size);
|
||||
offset=0;
|
||||
this->size=size;
|
||||
bufferProvided=false;
|
||||
}
|
||||
|
||||
BufferOutputStream::BufferOutputStream(unsigned char *buffer, size_t size){
|
||||
this->buffer=buffer;
|
||||
this->size=size;
|
||||
offset=0;
|
||||
bufferProvided=true;
|
||||
}
|
||||
|
||||
BufferOutputStream::~BufferOutputStream(){
|
||||
if(!bufferProvided)
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
void BufferOutputStream::WriteByte(unsigned char byte){
|
||||
this->ExpandBufferIfNeeded(1);
|
||||
buffer[offset++]=byte;
|
||||
}
|
||||
|
||||
void BufferOutputStream::WriteInt32(int32_t i){
|
||||
this->ExpandBufferIfNeeded(4);
|
||||
buffer[offset+3]=(unsigned char)((i >> 24) & 0xFF);
|
||||
buffer[offset+2]=(unsigned char)((i >> 16) & 0xFF);
|
||||
buffer[offset+1]=(unsigned char)((i >> 8) & 0xFF);
|
||||
buffer[offset]=(unsigned char)(i & 0xFF);
|
||||
offset+=4;
|
||||
}
|
||||
|
||||
void BufferOutputStream::WriteInt64(int64_t i){
|
||||
this->ExpandBufferIfNeeded(8);
|
||||
buffer[offset+7]=(unsigned char)((i >> 56) & 0xFF);
|
||||
buffer[offset+6]=(unsigned char)((i >> 48) & 0xFF);
|
||||
buffer[offset+5]=(unsigned char)((i >> 40) & 0xFF);
|
||||
buffer[offset+4]=(unsigned char)((i >> 32) & 0xFF);
|
||||
buffer[offset+3]=(unsigned char)((i >> 24) & 0xFF);
|
||||
buffer[offset+2]=(unsigned char)((i >> 16) & 0xFF);
|
||||
buffer[offset+1]=(unsigned char)((i >> 8) & 0xFF);
|
||||
buffer[offset]=(unsigned char)(i & 0xFF);
|
||||
offset+=8;
|
||||
}
|
||||
|
||||
void BufferOutputStream::WriteInt16(int16_t i){
|
||||
this->ExpandBufferIfNeeded(2);
|
||||
buffer[offset+1]=(unsigned char)((i >> 8) & 0xFF);
|
||||
buffer[offset]=(unsigned char)(i & 0xFF);
|
||||
offset+=2;
|
||||
}
|
||||
|
||||
void BufferOutputStream::WriteBytes(unsigned char *bytes, size_t count){
|
||||
this->ExpandBufferIfNeeded(count);
|
||||
memcpy(buffer+offset, bytes, count);
|
||||
offset+=count;
|
||||
}
|
||||
|
||||
unsigned char *BufferOutputStream::GetBuffer(){
|
||||
return buffer;
|
||||
}
|
||||
|
||||
size_t BufferOutputStream::GetLength(){
|
||||
return offset;
|
||||
}
|
||||
|
||||
void BufferOutputStream::ExpandBufferIfNeeded(size_t need){
|
||||
if(offset+need>size){
|
||||
if(bufferProvided){
|
||||
throw std::out_of_range("buffer overflow");
|
||||
}
|
||||
if(need<1024){
|
||||
buffer=(unsigned char *) realloc(buffer, size+1024);
|
||||
size+=1024;
|
||||
}else{
|
||||
buffer=(unsigned char *) realloc(buffer, size+need);
|
||||
size+=need;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BufferOutputStream::Reset(){
|
||||
offset=0;
|
||||
}
|
||||
|
||||
void BufferOutputStream::Rewind(size_t numBytes){
|
||||
if(numBytes>offset)
|
||||
throw std::out_of_range("buffer underflow");
|
||||
offset-=numBytes;
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#ifndef LIBTGVOIP_BUFFEROUTPUTSTREAM_H
|
||||
#define LIBTGVOIP_BUFFEROUTPUTSTREAM_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
||||
namespace tgvoip{
|
||||
class BufferOutputStream{
|
||||
|
||||
public:
|
||||
BufferOutputStream(size_t size);
|
||||
BufferOutputStream(unsigned char* buffer, size_t size);
|
||||
~BufferOutputStream();
|
||||
void WriteByte(unsigned char byte);
|
||||
void WriteInt64(int64_t i);
|
||||
void WriteInt32(int32_t i);
|
||||
void WriteInt16(int16_t i);
|
||||
void WriteBytes(unsigned char* bytes, size_t count);
|
||||
unsigned char* GetBuffer();
|
||||
size_t GetLength();
|
||||
void Reset();
|
||||
void Rewind(size_t numBytes);
|
||||
|
||||
private:
|
||||
void ExpandBufferIfNeeded(size_t need);
|
||||
unsigned char* buffer;
|
||||
size_t size;
|
||||
size_t offset;
|
||||
bool bufferProvided;
|
||||
};
|
||||
}
|
||||
|
||||
#endif //LIBTGVOIP_BUFFEROUTPUTSTREAM_H
|
@ -1,61 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#include "BufferPool.h"
|
||||
#include "logging.h"
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
using namespace tgvoip;
|
||||
|
||||
BufferPool::BufferPool(unsigned int size, unsigned int count){
|
||||
assert(count<=64);
|
||||
buffers[0]=(unsigned char*) malloc(size*count);
|
||||
bufferCount=count;
|
||||
unsigned int i;
|
||||
for(i=1;i<count;i++){
|
||||
buffers[i]=buffers[0]+i*size;
|
||||
}
|
||||
usedBuffers=0;
|
||||
this->size=size;
|
||||
}
|
||||
|
||||
BufferPool::~BufferPool(){
|
||||
free(buffers[0]);
|
||||
}
|
||||
|
||||
unsigned char* BufferPool::Get(){
|
||||
MutexGuard m(mutex);
|
||||
int i;
|
||||
for(i=0;i<bufferCount;i++){
|
||||
if(!((usedBuffers >> i) & 1)){
|
||||
usedBuffers|=(1LL << i);
|
||||
return buffers[i];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void BufferPool::Reuse(unsigned char* buffer){
|
||||
MutexGuard m(mutex);
|
||||
int i;
|
||||
for(i=0;i<bufferCount;i++){
|
||||
if(buffers[i]==buffer){
|
||||
usedBuffers&= ~(1LL << i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
LOGE("pointer passed isn't a valid buffer from this pool");
|
||||
abort();
|
||||
}
|
||||
|
||||
size_t BufferPool::GetSingleBufferSize(){
|
||||
return size;
|
||||
}
|
||||
|
||||
size_t BufferPool::GetBufferCount(){
|
||||
return (size_t) bufferCount;
|
||||
}
|
32
BufferPool.h
32
BufferPool.h
@ -1,32 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#ifndef LIBTGVOIP_BUFFERPOOL_H
|
||||
#define LIBTGVOIP_BUFFERPOOL_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "threading.h"
|
||||
|
||||
namespace tgvoip{
|
||||
class BufferPool{
|
||||
public:
|
||||
BufferPool(unsigned int size, unsigned int count);
|
||||
~BufferPool();
|
||||
unsigned char* Get();
|
||||
void Reuse(unsigned char* buffer);
|
||||
size_t GetSingleBufferSize();
|
||||
size_t GetBufferCount();
|
||||
|
||||
private:
|
||||
uint64_t usedBuffers;
|
||||
int bufferCount;
|
||||
size_t size;
|
||||
unsigned char* buffers[64];
|
||||
Mutex mutex;
|
||||
};
|
||||
}
|
||||
|
||||
#endif //LIBTGVOIP_BUFFERPOOL_H
|
@ -1,120 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#include "PulseAudioLoader.h"
|
||||
#include <dlfcn.h>
|
||||
#include "../../logging.h"
|
||||
|
||||
#define DECLARE_DL_FUNCTION(name) typeof(name)* PulseAudioLoader::_import_##name=NULL
|
||||
#define CHECK_DL_ERROR(res, msg) if(!res){LOGE(msg ": %s", dlerror()); dlclose(lib); return false;}
|
||||
#define LOAD_DL_FUNCTION(name) {_import_##name=(typeof(_import_##name))dlsym(lib, #name); CHECK_DL_ERROR(_import_##name, "Error getting entry point for " #name);}
|
||||
|
||||
using namespace tgvoip;
|
||||
|
||||
int PulseAudioLoader::refCount=0;
|
||||
void* PulseAudioLoader::lib=NULL;
|
||||
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_new);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_get_api);
|
||||
DECLARE_DL_FUNCTION(pa_context_new);
|
||||
DECLARE_DL_FUNCTION(pa_context_set_state_callback);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_lock);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_unlock);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_start);
|
||||
DECLARE_DL_FUNCTION(pa_context_connect);
|
||||
DECLARE_DL_FUNCTION(pa_context_get_state);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_wait);
|
||||
DECLARE_DL_FUNCTION(pa_stream_new);
|
||||
DECLARE_DL_FUNCTION(pa_stream_set_state_callback);
|
||||
DECLARE_DL_FUNCTION(pa_stream_set_write_callback);
|
||||
DECLARE_DL_FUNCTION(pa_stream_connect_playback);
|
||||
DECLARE_DL_FUNCTION(pa_operation_unref);
|
||||
DECLARE_DL_FUNCTION(pa_stream_cork);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_stop);
|
||||
DECLARE_DL_FUNCTION(pa_stream_disconnect);
|
||||
DECLARE_DL_FUNCTION(pa_stream_unref);
|
||||
DECLARE_DL_FUNCTION(pa_context_disconnect);
|
||||
DECLARE_DL_FUNCTION(pa_context_unref);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_free);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_signal);
|
||||
DECLARE_DL_FUNCTION(pa_stream_begin_write);
|
||||
DECLARE_DL_FUNCTION(pa_stream_write);
|
||||
DECLARE_DL_FUNCTION(pa_stream_get_state);
|
||||
DECLARE_DL_FUNCTION(pa_strerror);
|
||||
DECLARE_DL_FUNCTION(pa_stream_set_read_callback);
|
||||
DECLARE_DL_FUNCTION(pa_stream_connect_record);
|
||||
DECLARE_DL_FUNCTION(pa_stream_peek);
|
||||
DECLARE_DL_FUNCTION(pa_stream_drop);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_new);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_get_api);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_iterate);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_free);
|
||||
DECLARE_DL_FUNCTION(pa_context_get_sink_info_list);
|
||||
DECLARE_DL_FUNCTION(pa_context_get_source_info_list);
|
||||
DECLARE_DL_FUNCTION(pa_operation_get_state);
|
||||
|
||||
bool PulseAudioLoader::IncRef(){
|
||||
if(refCount==0){
|
||||
lib=dlopen("libpulse.so.0", RTLD_LAZY);
|
||||
if(!lib)
|
||||
lib=dlopen("libpulse.so", RTLD_LAZY);
|
||||
if(!lib){
|
||||
LOGE("Error loading libpulse: %s", dlerror());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_new);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_get_api);
|
||||
LOAD_DL_FUNCTION(pa_context_new);
|
||||
LOAD_DL_FUNCTION(pa_context_set_state_callback);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_lock);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_unlock);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_start);
|
||||
LOAD_DL_FUNCTION(pa_context_connect);
|
||||
LOAD_DL_FUNCTION(pa_context_get_state);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_wait);
|
||||
LOAD_DL_FUNCTION(pa_stream_new);
|
||||
LOAD_DL_FUNCTION(pa_stream_set_state_callback);
|
||||
LOAD_DL_FUNCTION(pa_stream_set_write_callback);
|
||||
LOAD_DL_FUNCTION(pa_stream_connect_playback);
|
||||
LOAD_DL_FUNCTION(pa_operation_unref);
|
||||
LOAD_DL_FUNCTION(pa_stream_cork);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_stop);
|
||||
LOAD_DL_FUNCTION(pa_stream_disconnect);
|
||||
LOAD_DL_FUNCTION(pa_stream_unref);
|
||||
LOAD_DL_FUNCTION(pa_context_disconnect);
|
||||
LOAD_DL_FUNCTION(pa_context_unref);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_free);
|
||||
LOAD_DL_FUNCTION(pa_threaded_mainloop_signal);
|
||||
LOAD_DL_FUNCTION(pa_stream_begin_write);
|
||||
LOAD_DL_FUNCTION(pa_stream_write);
|
||||
LOAD_DL_FUNCTION(pa_stream_get_state);
|
||||
LOAD_DL_FUNCTION(pa_strerror);
|
||||
LOAD_DL_FUNCTION(pa_stream_set_read_callback);
|
||||
LOAD_DL_FUNCTION(pa_stream_connect_record);
|
||||
LOAD_DL_FUNCTION(pa_stream_peek);
|
||||
LOAD_DL_FUNCTION(pa_stream_drop);
|
||||
LOAD_DL_FUNCTION(pa_mainloop_new);
|
||||
LOAD_DL_FUNCTION(pa_mainloop_get_api);
|
||||
LOAD_DL_FUNCTION(pa_mainloop_iterate);
|
||||
LOAD_DL_FUNCTION(pa_mainloop_free);
|
||||
LOAD_DL_FUNCTION(pa_context_get_sink_info_list);
|
||||
LOAD_DL_FUNCTION(pa_context_get_source_info_list);
|
||||
LOAD_DL_FUNCTION(pa_operation_get_state);
|
||||
|
||||
refCount++;
|
||||
return true;
|
||||
}
|
||||
|
||||
void PulseAudioLoader::DecRef(){
|
||||
if(refCount>0)
|
||||
refCount--;
|
||||
if(refCount==0){
|
||||
dlclose(lib);
|
||||
lib=NULL;
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
//
|
||||
// libtgvoip is free and unencumbered public domain software.
|
||||
// For more information, see http://unlicense.org or the UNLICENSE file
|
||||
// you should have received with this source code distribution.
|
||||
//
|
||||
|
||||
#ifndef LIBTGVOIP_PULSEAUDIOLOADER_H
|
||||
#define LIBTGVOIP_PULSEAUDIOLOADER_H
|
||||
|
||||
#include <pulse/pulseaudio.h>
|
||||
|
||||
#define DECLARE_DL_FUNCTION(name) static typeof(name)* _import_##name
|
||||
|
||||
namespace tgvoip{
|
||||
class PulseAudioLoader{
|
||||
public:
|
||||
static bool IncRef();
|
||||
static void DecRef();
|
||||
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_new);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_get_api);
|
||||
DECLARE_DL_FUNCTION(pa_context_new);
|
||||
DECLARE_DL_FUNCTION(pa_context_set_state_callback);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_lock);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_unlock);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_start);
|
||||
DECLARE_DL_FUNCTION(pa_context_connect);
|
||||
DECLARE_DL_FUNCTION(pa_context_get_state);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_wait);
|
||||
DECLARE_DL_FUNCTION(pa_stream_new);
|
||||
DECLARE_DL_FUNCTION(pa_stream_set_state_callback);
|
||||
DECLARE_DL_FUNCTION(pa_stream_set_write_callback);
|
||||
DECLARE_DL_FUNCTION(pa_stream_connect_playback);
|
||||
DECLARE_DL_FUNCTION(pa_operation_unref);
|
||||
DECLARE_DL_FUNCTION(pa_stream_cork);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_stop);
|
||||
DECLARE_DL_FUNCTION(pa_stream_disconnect);
|
||||
DECLARE_DL_FUNCTION(pa_stream_unref);
|
||||
DECLARE_DL_FUNCTION(pa_context_disconnect);
|
||||
DECLARE_DL_FUNCTION(pa_context_unref);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_free);
|
||||
DECLARE_DL_FUNCTION(pa_threaded_mainloop_signal);
|
||||
DECLARE_DL_FUNCTION(pa_stream_begin_write);
|
||||
DECLARE_DL_FUNCTION(pa_stream_write);
|
||||
DECLARE_DL_FUNCTION(pa_stream_get_state);
|
||||
DECLARE_DL_FUNCTION(pa_strerror);
|
||||
DECLARE_DL_FUNCTION(pa_stream_set_read_callback);
|
||||
DECLARE_DL_FUNCTION(pa_stream_connect_record);
|
||||
DECLARE_DL_FUNCTION(pa_stream_peek);
|
||||
DECLARE_DL_FUNCTION(pa_stream_drop);
|
||||
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_new);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_get_api);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_iterate);
|
||||
DECLARE_DL_FUNCTION(pa_mainloop_free);
|
||||
DECLARE_DL_FUNCTION(pa_context_get_sink_info_list);
|
||||
DECLARE_DL_FUNCTION(pa_context_get_source_info_list);
|
||||
DECLARE_DL_FUNCTION(pa_operation_get_state);
|
||||
|
||||
private:
|
||||
static void* lib;
|
||||
static int refCount;
|
||||
};
|
||||
}
|
||||
|
||||
#undef DECLARE_DL_FUNCTION
|
||||
|
||||
#ifdef TGVOIP_IN_AUDIO_IO
|
||||
#define pa_threaded_mainloop_new PulseAudioLoader::_import_pa_threaded_mainloop_new
|
||||
#define pa_threaded_mainloop_get_api PulseAudioLoader::_import_pa_threaded_mainloop_get_api
|
||||
#define pa_context_new PulseAudioLoader::_import_pa_context_new
|
||||
#define pa_context_set_state_callback PulseAudioLoader::_import_pa_context_set_state_callback
|
||||
#define pa_threaded_mainloop_lock PulseAudioLoader::_import_pa_threaded_mainloop_lock
|
||||
#define pa_threaded_mainloop_unlock PulseAudioLoader::_import_pa_threaded_mainloop_unlock
|
||||
#define pa_threaded_mainloop_start PulseAudioLoader::_import_pa_threaded_mainloop_start
|
||||
#define pa_context_connect PulseAudioLoader::_import_pa_context_connect
|
||||
#define pa_context_get_state PulseAudioLoader::_import_pa_context_get_state
|
||||
#define pa_threaded_mainloop_wait PulseAudioLoader::_import_pa_threaded_mainloop_wait
|
||||
#define pa_stream_new PulseAudioLoader::_import_pa_stream_new
|
||||
#define pa_stream_set_state_callback PulseAudioLoader::_import_pa_stream_set_state_callback
|
||||
#define pa_stream_set_write_callback PulseAudioLoader::_import_pa_stream_set_write_callback
|
||||
#define pa_stream_connect_playback PulseAudioLoader::_import_pa_stream_connect_playback
|
||||
#define pa_operation_unref PulseAudioLoader::_import_pa_operation_unref
|
||||
#define pa_stream_cork PulseAudioLoader::_import_pa_stream_cork
|
||||
#define pa_threaded_mainloop_stop PulseAudioLoader::_import_pa_threaded_mainloop_stop
|
||||
#define pa_stream_disconnect PulseAudioLoader::_import_pa_stream_disconnect
|
||||
#define pa_stream_unref PulseAudioLoader::_import_pa_stream_unref
|
||||
#define pa_context_disconnect PulseAudioLoader::_import_pa_context_disconnect
|
||||
#define pa_context_unref PulseAudioLoader::_import_pa_context_unref
|
||||
#define pa_threaded_mainloop_free PulseAudioLoader::_import_pa_threaded_mainloop_free
|
||||
#define pa_threaded_mainloop_signal PulseAudioLoader::_import_pa_threaded_mainloop_signal
|
||||
#define pa_stream_begin_write PulseAudioLoader::_import_pa_stream_begin_write
|
||||
#define pa_stream_write PulseAudioLoader::_import_pa_stream_write
|
||||
#define pa_strerror PulseAudioLoader::_import_pa_strerror
|
||||
#define pa_stream_get_state PulseAudioLoader::_import_pa_stream_get_state
|
||||
#define pa_stream_set_read_callback PulseAudioLoader::_import_pa_stream_set_read_callback
|
||||
#define pa_stream_connect_record PulseAudioLoader::_import_pa_stream_connect_record
|
||||
#define pa_stream_peek PulseAudioLoader::_import_pa_stream_peek
|
||||
#define pa_stream_drop PulseAudioLoader::_import_pa_stream_drop
|
||||
#define pa_mainloop_new PulseAudioLoader::_import_pa_mainloop_new
|
||||
#define pa_mainloop_get_api PulseAudioLoader::_import_pa_mainloop_get_api
|
||||
#define pa_mainloop_iterate PulseAudioLoader::_import_pa_mainloop_iterate
|
||||
#define pa_mainloop_free PulseAudioLoader::_import_pa_mainloop_free
|
||||
#define pa_context_get_sink_info_list PulseAudioLoader::_import_pa_context_get_sink_info_list
|
||||
#define pa_context_get_source_info_list PulseAudioLoader::_import_pa_context_get_source_info_list
|
||||
#define pa_operation_get_state PulseAudioLoader::_import_pa_operation_get_state
|
||||
#endif
|
||||
|
||||
#endif // LIBTGVOIP_PULSEAUDIOLOADER_H
|
Loading…
x
Reference in New Issue
Block a user