#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "libavparam.h"
#include "MRConfCamEnv.h"

#define IPADDR		"192.168.5.183"
#define IPPORT		3000
#define USERNAME	"admin"
#define PASSWORD	"admin"

static unsigned char s_byEnvBuffer[4096];

static void cmd_sysattr(const char *szCmd, void *pParam)
{
	MRCONFC_SYSATTR_CFG *pSysAttr = (MRCONFC_SYSATTR_CFG*)pParam;
	int iRet;
	memset(pSysAttr, 0, sizeof(MRCONFC_SYSATTR_CFG));
	iRet = librmconfc_env_get(IPADDR, IPPORT, USERNAME, PASSWORD, NULL, szCmd, sizeof(MRCONFC_SYSATTR_CFG), pSysAttr);
	if(iRet)
	{
		printf("librmconfc_env_get(%s) failed\n", szCmd);
		return;
	}
	strcpy(pSysAttr->szDevName, "testname");
	iRet = librmconfc_env_set(IPADDR, IPPORT, USERNAME, PASSWORD, NULL, szCmd, sizeof(MRCONFC_SYSATTR_CFG), pSysAttr);
	if(iRet)
	{
		printf("librmconfc_env_set(%s) failed\n", szCmd);
		return;
	}
	memset(pSysAttr, 0, sizeof(MRCONFC_SYSATTR_CFG));
	iRet = librmconfc_env_get(IPADDR, IPPORT, USERNAME, PASSWORD, NULL, szCmd, sizeof(MRCONFC_SYSATTR_CFG), pSysAttr);
	if(iRet)
	{
		printf("librmconfc_env_get(%s) failed\n", szCmd);
		return;
	}
	printf("dev name = %s\n", pSysAttr->szDevName);
}

static void cmd_systime(const char *szCmd, void *pParam)
{
}

static void cmd_sysuser(const char *szCmd, void *pParam)
{
}
static void cmd_audio(const char *szCmd, void *pParam)
{
}
static void cmd_videoout(const char *szCmd, void *pParam)
{
}
static void cmd_videoosd(const char *szCmd, void *pParam)
{
}
static void cmd_encoder(const char *szCmd, void *pParam)
{
	MRCONFC_VIDEOENCODE_CFG *pEncoder = (MRCONFC_VIDEOENCODE_CFG*)pParam;
	int iRet;
	memset(pEncoder, 0, sizeof(MRCONFC_VIDEOENCODE_CFG));
	iRet = librmconfc_env_get(IPADDR, IPPORT, USERNAME, PASSWORD, NULL, szCmd, sizeof(MRCONFC_VIDEOENCODE_CFG), pEncoder);
	if(iRet)
	{
		printf("librmconfc_env_get(%s) failed\n", szCmd);
		return;
	}
	pEncoder->stMaster.nBitRate      = 512;
	pEncoder->stMaster.byIFrameMinQP = 26;
	iRet = librmconfc_env_set(IPADDR, IPPORT, USERNAME, PASSWORD, NULL, szCmd, sizeof(MRCONFC_VIDEOENCODE_CFG), pEncoder);
	if(iRet)
	{
		printf("librmconfc_env_set(%s) failed\n", szCmd);
		return;
	}
}
static void cmd_videoparam(const char *szCmd, void *pParam)
{
}
static void cmd_network(const char *szCmd, void *pParam)
{
}
static void cmd_fontsize(const char *szCmd, void *pParam)
{
}
static void cmd_publish(const char *szCmd, void *pParam)
{
}
static void cmd_ptzattr(const char *szCmd, void *pParam)
{
}

int main(int argc, char *argv[])
{
	if(argc < 2)
	{
		printf("env : param name");
		return -1;
	}
	libmravparam_init();
	if(strcmp(argv[1], "encoder") == 0)
	{
		cmd_encoder(MRCONFC_ENVCMD_VIDEOENCODE, s_byEnvBuffer);
	}
	libmravparam_cleanup();
	return 0;
}
