Commit 31d89b53 authored by Mikhail Karpenko's avatar Mikhail Karpenko
Browse files

Add basic multichannel support

All functions except a pointer to state struct, but process fork is not
added yet. Code compiles but has not been tested yet.
parent 786c0e75
Loading
Loading
Loading
Loading
+304 −219

File changed.

Preview size limit exceeded, changes collapsed.

+11 −6
Original line number Diff line number Diff line
#ifndef _CAMOGM_H
#define _CAMOGM_H

#define CAMOGM_FRAME_NOT_READY 1        // frame pointer valid, but not yet acquired
#define CAMOGM_FRAME_INVALID   2        // invalid frame pointer
#define CAMOGM_FRAME_CHANGED   3        // frame parameters have changed
@@ -155,16 +158,18 @@ typedef struct {
	int kml_last_uts;                                       //! last generated kml file timestamp, microseconds
	struct exif_dir_table_t kml_exif[ExifKmlNumber];        //! store locations of the fields needed for KML generations in the Exif block


	unsigned int port_num;
} camogm_state;

extern int debug_level;
extern FILE* debug_file;
extern camogm_state * state;
//extern camogm_state * state;
void put_uint16(void *buf, u_int16_t val);
void put_uint32(void *buf, u_int32_t val);
void put_uint64(void *buf, u_int64_t val);
unsigned long getGPValue(unsigned long GPNumber);
void setGValue(unsigned long GNumber,   unsigned long value);
int  waitDaemonEnabled(int daemonBit);  // <0 - use default
int  isDaemonEnabled(int daemonBit);    // <0 - use default
unsigned long getGPValue(unsigned int port, unsigned long GPNumber);
//void setGValue(unsigned long GNumber,   unsigned long value);
//int  waitDaemonEnabled(int daemonBit);  // <0 - use default
//int  isDaemonEnabled(int daemonBit);    // <0 - use default

#endif /* _CAMOGM_H */
+4 −3
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@
#include "ogmstreams.h" // move it to <>?

#include "camogm_jpeg.h"
#include "camogm.h"

//! may add something - called first time format is changed to this one (only once) recording is stopped
int camogm_init_jpeg(void)
{
@@ -72,7 +72,7 @@ void camogm_free_jpeg(void)
{
}

int camogm_start_jpeg(void)
int camogm_start_jpeg(camogm_state *state)
{
//!TODO: make directory if it does not exist (find the last "/" in the state->path
	char * slash;
@@ -94,7 +94,8 @@ int camogm_start_jpeg(void)
	}
	return 0;
}
int camogm_frame_jpeg(void)

int camogm_frame_jpeg(camogm_state *state)
{
	int i, j;
//   int fd;
+8 −2
Original line number Diff line number Diff line
#ifndef _CAMOGM_JPEG_H
#define _CAMOGM_JPEG_H

#include "camogm.h"

int camogm_init_jpeg(void);
int camogm_start_jpeg(void);
int camogm_frame_jpeg(void);
int camogm_start_jpeg(camogm_state *state);
int camogm_frame_jpeg(camogm_state *state);
int camogm_end_jpeg(void);
void camogm_free_jpeg(void);

#endif /* _CAMOGM_JPEG_H */
+4 −5
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@
#include "ogmstreams.h" // move it to <>?

#include "camogm_kml.h"
#include "camogm.h"

const char ExifDirFileName[] = "/dev/exif_metadir";

//! may add something - called first time format is changed to this one (only once) recording is stopped
@@ -93,7 +93,7 @@ void camogm_free_kml(void)
   }

 */
int camogm_start_kml(void)
int camogm_start_kml(camogm_state *state)
{
//  struct exif_dir_table_t kml_exif[ExifKmlNumber] ;  //! store locations of the fields needed for KML generations in the Exif block
///exif_metadir
@@ -152,7 +152,7 @@ int camogm_start_kml(void)
	return 0;
}

int camogm_frame_kml(void)
int camogm_frame_kml(camogm_state *state)
{
	char JPEGFileName[300];
	char * filename;
@@ -316,7 +316,7 @@ int camogm_frame_kml(void)
}


int camogm_end_kml(void)
int camogm_end_kml(camogm_state *state)
{

	if (state->kml_file) {
@@ -327,4 +327,3 @@ int camogm_end_kml(void)
	}
	return 0;
}
Loading