File: playerrtaudio.h

package info (click to toggle)
mixxx 1.4.2-1.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 10,676 kB
  • ctags: 4,130
  • sloc: ansic: 35,627; cpp: 27,118; xml: 3,691; sh: 417; makefile: 54
file content (67 lines) | stat: -rw-r--r-- 2,574 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/***************************************************************************
                          playerrtaudio.h  -  description
                             -------------------
    begin                : Thu May 20 2004
    copyright            : (C) 2002 by Tue and Ken Haste Andersen
    email                :
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef PLAYERRTAUDIO_H
#define PLAYERRTAUDIO_H

#include "player.h"
#include <RtAudio.h>

/**
  *@author Tue and Ken Haste Andersen
  */


class PlayerRtAudio : public Player  {
public:
    PlayerRtAudio(ConfigObject<ConfigValue> *config);
    ~PlayerRtAudio();
    bool initialize();
    bool open();
    void close();
    void setDefaults();
    QStringList getInterfaces();
    QStringList getSampleRates();
    static QString getSoundApi();
    QString getSoundApiName() { return getSoundApi(); };
    /** Satisfy virtual declaration in EngineObject */
    void process(const CSAMPLE *, const CSAMPLE *, const int) {};
    /** Process samples. Called from RtAudio callback */
    int callbackProcess(int iBufferSize, float *out);

protected:
    /** Pointer to RtAudio object */
    RtAudio *m_pRtAudio;
    /** Get id of device with a given name. Returns -1 if device is not found */
    int getDeviceID(QString name);
    /** Get channel number of device with a given name. Returns -1 if device is no found */
    int getChannelNo(QString name);
    /** Id of currently open device. -1 if no device is open */
    int m_devId;
    /** Number of open channels */
    int m_iChannels;
    /** Channels used for each output from Mixxx. Set to -1 when not in use */
    int m_iMasterLeftCh, m_iMasterRigthCh, m_iHeadLeftCh, m_iHeadRightCh;
    /** True if RtAudio was sucessfully initialized */
    bool m_bInit;
    /** Number of buffers */
    int m_iNumberOfBuffers;
};

int rtCallback(char *outputBuffer, int framesPerBuffer, void *_player);

#endif