xuxiuxi
2017-07-06 15ff843a8c1889b0f66f827f97f22008291dceab
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
@@ -1,5 +1,6 @@
#include "RtspNativeCodecJNI.h"
#include "CameraWrapper.h"
#include "CaptureCamera.h"
#include <logger.h>
#include <Logger/src/logger.hpp>
@@ -16,7 +17,7 @@
#include <stdlib.h>
#include "DebugNetwork.h"
#include "serial.h"
//#include <mediastreamer2/include/mediastreamer2/msjava.h>
std::stringstream logss;
@@ -27,6 +28,8 @@
static std::string g_stface_license_str;
CameraWrapper g_CameraWrappers[CAMERA_COUNT];
CaptureCamera g_CaptureCamera;
extern "C"
{
@@ -242,7 +245,7 @@
        }
        else if (cameraWrapper.rtspConfig.rtspURL.find("/h264_2") != std::string::npos)
        {
            w=640;h=480;
            w=800;h=600;
        }
        else if (cameraWrapper.rtspConfig.rtspURL.find("/h264") != std::string::npos)
        {
@@ -446,7 +449,7 @@
    evpHeader->size = sizeof(EVPHeader) + sizeof(FDP_FaceDetectPB) + buffSize;
    buffSize = evpHeader->size;
    FDP_FaceDetectPB* fdpFaceDetectPB = new (buffer + sizeof(EVPHeader)) FDP_FaceDetectPB(dbId);
    FDP_FaceDetectPB* fdpFaceDetectPB = new (buffer + sizeof(EVPHeader)) FDP_FaceDetectPB(dbId, cameraIdx + 1);
    evpHeader->hton();
    fdpFaceDetectPB->hton();
@@ -649,4 +652,132 @@
    //LOG_ERROR << g_stface_license_str << LOG_ERROR;
}
void Java_cn_com_basic_face_util_RtspFaceNative_setCaptureSurface(JNIEnv *env, jclass clazz, jobject surfaceCapture)
{
    if (g_CaptureCamera.windowRender != nullptr)
    {
        ANativeWindow_release((ANativeWindow*)(g_CaptureCamera.windowRender));
        g_CaptureCamera.windowRender = NULL;
    }
    g_CaptureCamera.windowRender = ANativeWindow_fromSurface(env, surfaceCapture);
}
bool Java_cn_com_basic_face_util_RtspFaceNative_startCapturePlayer(JNIEnv *env, jclass clazz, jstring uri)
{
    std::string _uri;
    {
        const char *utfFunc = env->GetStringUTFChars(uri, NULL);
        _uri = utfFunc;
        env->ReleaseStringUTFChars(uri, utfFunc);
    }
    if (_uri.empty())
        return false;
    if (g_CaptureCamera.windowRender == nullptr)
        return false;
    g_CaptureCamera.cameraUri = _uri;
    return g_CaptureCamera.start();
}
void Java_cn_com_basic_face_util_RtspFaceNative_stopCapturePlayer(JNIEnv *env, jclass clazz)
{
}
jobject Java_cn_com_basic_face_util_RtspFaceNative_getCaptureImages(JNIEnv* env, jclass clazz)
{
}
}
void Delay(unsigned int nDelay)
{
    unsigned int i,j,k;
    for ( i=0;i<nDelay;i++ )
        for ( j=0;j<6144;j++ )
            k++;
}
void callNum(int fd,char phone)
{
    switch ( phone)
    {
        case '1':
            serialWriteString(fd,"DA");//1
            break;
        case '2':
            serialWriteString(fd,"DB");//2
            break;
        case '3':
            serialWriteString(fd,"DC");//3
            break;
        case '4':
            serialWriteString(fd,"DD");//4
            break;
        case '5':
            serialWriteString(fd,"DE");//5
            break;
        case '6':
            serialWriteString(fd,"DF");//6
            break;
        case '7':
            serialWriteString(fd,"DG");//7
            break;
        case '8':
            serialWriteString(fd,"DH");//8
            break;
        case '9':
            serialWriteString(fd,"DI");//9
            break;
        case '0':
            serialWriteString(fd,"DJ");//0
            break;
    }
}
void call(const char * phone)
{
    int  fd = serialOpen("/dev/ttyS1",2400);
    serialWriteString(fd,"AA");
    Delay(10000);
   while (*phone)
   {
       Delay(10000);
       callNum(fd,*(phone++));
   }
}
char* jstringTostring(JNIEnv* env, jstring jstr)
{
char* rtn = NULL;
jclass clsstring = env->FindClass("java/lang/String");
jstring strencode = env->NewStringUTF("utf-8");
jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B");
jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode);
jsize alen = env->GetArrayLength(barr);
jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE);
if (alen > 0)
{
rtn = (char*)malloc(alen + 1);
memcpy(rtn, ba, alen);
rtn[alen] = 0;
}
env->ReleaseByteArrayElements(barr, ba, 0);
return rtn;
}
void Java_cn_com_basic_face_util_RtspFaceNative_telCall(JNIEnv* env, jclass clazz,jstring phone)
 {
     call(jstringTostring(phone));
 }
 void Java_cn_com_basic_face_util_RtspFaceNative_Hang(JNIEnv* env, jclass clazz)
 {
       int  fd = serialOpen("/dev/ttyS1",2400);
           serialWriteString(fd,"BA");
 }