Source

pygame / src / _gsound.h

#ifndef _GSOUND_H_
#define _GSOUND_H_
#include <Python.h>
#include <SDL/SDL_mixer.h>
#include <SDL.h>
#include <SDL_thread.h>
#include <libavformat/avformat.h>

typedef struct BufferNode
{
    uint8_t *buf;
    int      len;
    int64_t  pts;
    struct BufferNode
                *next;
}
BufferNode;

typedef struct BufferQueue
{
    BufferNode *first, *last;
    int size;
    SDL_mutex *mutex;
}
BufferQueue;

typedef struct AudioInfo
{
    double      audio_clock;        //keeps track of our PTS, in seconds
    double      old_clock;          //for when the video is paused
    int         channels;           //data for keeping track of the fraction of a second the current frame will take
    int         sample_rate;        //''
    int         current_frame_size; //''
    int         pts;                //current pts
    int         playing;            //if we've started playing any buffers
    int         channel;            //what channel the last buffer played on
    int         ended;              //whether or not we've "ended", so we know to output silence.
	int			paused;
    BufferQueue queue;              //queue of our buffers
    SDL_mutex   *mutex;
	//PyThreadState *_tstate;
	int restart;
	double time_base;
}
AudioInfo;

AudioInfo *ainfo;

int soundInit     (int freq, int size, int channels, int chunksize, double time_base);
int soundQuit     (void);
int soundStart    (void);
int soundEnd      (void);
int playBuffer    (uint8_t *buf, uint32_t len, int channel, int64_t pts);
int stopBuffer    (int channel);
int pauseBuffer   (int channel);
int getPaused     (int channel);
double getAudioClock (void);
int getBufferQueueSize(void);
int seekBuffer    (double pts);
int setCallback   (void (*callback) (int channel));
int resetAudioInfo(void);
void playBufferQueue(void);
#endif /*_GSOUND_H_*/
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.