blob: 6d0cb154a1313058957220f68c81bd9cc5b3f764 (
plain)
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#include "config.h"
#ifdef USE_GUI
#ifndef __RTVIDEOREC_PLAYER_H
#define __RTVIDEOREC_PLAYER_H
#include "info.h"
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include "util.h"
#include "queue.h"
#include "thread.h"
#include "frame.h"
#include <qwidget.h>
#include "yuv_draw.h"
#define TEXT_RECORDING "Optager"
#define TEXT_STOPPED "Stoppet"
class Player : public Thread {
public:
Player(Info *ginfo,
int width, int height,
volatile int *grunning,
sem_t *gsem,
Queue<Frame> *gqueue,
pthread_mutex_t *gmutex);
~Player();
void setCpr(char *newcpr, char* name);
void startrecord();
void stoprecord();
void start();
void stop();
void resize(int width, int height, bool showtext);
void thread_main();
private:
void initSDL();
void deinitSDL();
void reinitSDL();
volatile int width;
volatile int height;
SDL_Rect rect;
volatile bool bypass;
volatile bool showtext;
volatile bool recording;
bool recording_prev;
volatile bool cprchanged;
char cpr[256];
Info *info;
void player();
bool noErrors;
volatile int *running;
sem_t *sem;
Queue<Frame> *queue;
pthread_mutex_t *mutex;
sem_t play_sem;
SDL_Surface *screen;
SDL_Overlay *overlay;
YUVDraw *yuv_draw;
};
#endif
#endif
|