Browse Source

Cleanup

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2363 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
db77bf32c9
3 changed files with 6 additions and 102 deletions
  1. +1
    -1
      common/JackAudioDriver.h
  2. +4
    -4
      common/JackMessageBuffer.cpp
  3. +1
    -97
      common/JackMessageBuffer.h

+ 1
- 1
common/JackAudioDriver.h View File

@@ -50,7 +50,7 @@ class EXPORT JackAudioDriver : public JackDriver
jack_default_audio_sample_t* GetOutputBuffer(int port_index);
jack_default_audio_sample_t* GetMonitorBuffer(int port_index);

void CycleIncTime();
void CycleIncTime();

private:



+ 4
- 4
common/JackMessageBuffer.cpp View File

@@ -70,12 +70,12 @@ void JackMessageBuffer::Flush()

void JackMessageBuffer::AddMessage(int level, const char *message)
{
if (fMutex->Trylock()) {
if (fMutex.Trylock()) {
fBuffers[fInBuffer].level = level;
strncpy(fBuffers[fInBuffer].message, message, MB_BUFFERSIZE);
fInBuffer = MB_NEXT(fInBuffer);
fSignal->SignalAll();
fMutex->Unlock();
fMutex.Unlock();
} else { /* lock collision */
INC_ATOMIC(&fOverruns);
}
@@ -84,9 +84,9 @@ void JackMessageBuffer::AddMessage(int level, const char *message)
bool JackMessageBuffer::Execute()
{
fSignal->Wait();
fMutex->Lock();
fMutex.Lock();
Flush();
fMutex->Unlock();
fMutex.Unlock();
return true;
}



+ 1
- 97
common/JackMessageBuffer.h View File

@@ -55,103 +55,7 @@ class JackMessageBuffer : public JackRunnableInterface
private:
JackMessage fBuffers[MB_BUFFERS];
JackMutex* fMutex;
JackThread* fThread;
JackSyncInterface* fSignal;
volatile unsigned int fInBuffer;
volatile unsigned int fOutBuffer;
SInt32 fOverruns;

void Flush();
public:
JackMessageBuffer();
~JackMessageBuffer();
// JackRunnableInterface interface
bool Execute();

void static Create();
void static Destroy();

void AddMessage(int level, const char *message);

static JackMessageBuffer* fInstance;
};

#ifdef __cplusplus
extern "C"
{
#endif

void JackMessageBufferAdd(int level, const char *message);

#ifdef __cplusplus
}
#endif

};

#endif
/*
* messagebuffer.h -- realtime-safe message interface for jackd.
*
* This function is included in libjack so backend drivers can use
* it, *not* for external client processes. The VERBOSE() and
* MESSAGE() macros are realtime-safe.
*/

/*
* Copyright (C) 2004 Rui Nuno Capela, Steve Harris
* Copyright (C) 2008 Nedko Arnaudov
* Copyright (C) 2008 Grame
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/

#ifndef __JackMessageBuffer__
#define __JackMessageBuffer__

#include "JackThread.h"
#include "JackMutex.h"
#include "JackAtomic.h"
#include "JackSyncInterface.h"

namespace Jack
{

/* MB_NEXT() relies on the fact that MB_BUFFERS is a power of two */
#define MB_BUFFERS 128
#define MB_NEXT(index) ((index+1) & (MB_BUFFERS-1))
#define MB_BUFFERSIZE 256 /* message length limit */

struct JackMessage
{
int level;
char message[MB_BUFFERSIZE];
};

class JackMessageBuffer : public JackRunnableInterface
{

private:
JackMessage fBuffers[MB_BUFFERS];
JackMutex* fMutex;
JackMutex fMutex;
JackThread* fThread;
JackSyncInterface* fSignal;
volatile unsigned int fInBuffer;


Loading…
Cancel
Save