You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
73 lines
1.8 KiB
/***************************************************************************************
|
|
*
|
|
* output.h is part of SimpleSkyCam.
|
|
*
|
|
*****************************************************************************************/
|
|
|
|
|
|
#ifndef _OUTPUT_H_
|
|
#define _OUTPUT_H_
|
|
|
|
#include "gui.h"
|
|
#include "config.h"
|
|
#include "video.h"
|
|
#include "videoframe.h"
|
|
#include "ser.h"
|
|
|
|
|
|
#define OUTPUT_MODE_SER_STARTED 0x0001
|
|
|
|
class Output {
|
|
private:
|
|
int running;
|
|
VideoFrameRaw inFrame; // input frame
|
|
int inFrameNew; // new input frame;
|
|
GMutex muteximage;
|
|
GMutex mutexin;
|
|
GMutex mutextmp; // for access the temp image
|
|
GMutex mutex; // general mutex for changing settings
|
|
GThread *thread;
|
|
unsigned int mode; // see OUTPUT_MODE_ flags
|
|
std::string outputfilename; // current output
|
|
|
|
void ComposeOutput();
|
|
void NotifyGTK ();
|
|
SER *outputser;
|
|
int outputserw; // to detect if the size
|
|
int outputserh; // changes white recording
|
|
uint32_t outputserfmt; //
|
|
|
|
public:
|
|
Output();
|
|
~Output();
|
|
|
|
int NewFrame (VideoFrameRaw *rawframe);
|
|
|
|
// Thread Releated Functions (maybe soon private?)
|
|
int TryLockInMutex() { return g_mutex_trylock(&mutexin); };
|
|
void LockInMutex() { g_mutex_lock(&mutexin);};
|
|
void UnLockInMutex() { g_mutex_unlock(&mutexin);};
|
|
|
|
int TryLockImageMutex() { return g_mutex_trylock(&muteximage); };
|
|
void LockImageMutex() { g_mutex_lock(&muteximage);};
|
|
void UnLockImageMutex() { g_mutex_unlock(&muteximage);};
|
|
|
|
void LockMutex() { g_mutex_lock(&mutex);};
|
|
void UnLockMutex() { g_mutex_unlock(&mutex);};
|
|
|
|
//
|
|
// Object functions
|
|
void SetObjectSize (int neww, int newh);
|
|
void SetObject (VideoFrame objFrame, int newx, int newy);
|
|
void GetObjectPos (int *x, int *y);
|
|
|
|
void SERStart(std::string destpath, std::string sufix);
|
|
void SERStop();
|
|
|
|
int GetStatus() { return mode; };
|
|
|
|
void Thread();
|
|
};
|
|
|
|
#endif
|