package com.droidlogic.app;

import a.a.a.a.b.wh;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.WindowManager;
import java.lang.ref.WeakReference;
import java.nio.ByteBuffer;

/* JADX INFO: loaded from: classes.dex */
public class ScreenControlManager {
    public static final int AMLOGIC_CAPTURE_OSD_ONLY = 2;
    public static final int AMLOGIC_CAPTURE_VIDEO_AND_OSD = 1;
    public static final int AMLOGIC_CAPTURE_VIDEO_ONLY = 0;
    public static final int MSG_DATA_TYPE_AVC = 1;
    public static final int MSG_DATA_TYPE_YUV = 0;
    public static final int REMOTE_EXCEPTION = -65535;
    private static final String TAG = "ScreenControlManager";
    private static AvcCallbackListener mAvcCallbackListener;
    private static final Object mLock = new Object();

    public interface AvcCallbackListener {
        void onAvcAvailable(byte[] bArr, int i2, long j2);
    }

    public static class INSTANCE {
        private static final ScreenControlManager I = new ScreenControlManager();

        private INSTANCE() {
        }
    }

    static {
        System.loadLibrary("screencontrol_jni");
    }

    private ScreenControlManager() {
        native_ConnectScreenControl();
    }

    public static Bitmap captureAmlogic(int i2, int i3, wh whVar) {
        int i4 = whVar == wh.VIDEO_ONLY ? 0 : whVar == wh.OSD_ONLY ? 2 : 1;
        Log.i(TAG, "captureAmlogic:type " + i4);
        byte[] bArrNative_ScreenCapBuffer = INSTANCE.I.native_ScreenCapBuffer(0, 0, i2, i3, i2, i3, i4);
        if (bArrNative_ScreenCapBuffer != null) {
            Bitmap bitmapCreateBitmap = Bitmap.createBitmap(i2, i3, Bitmap.Config.ARGB_8888);
            bitmapCreateBitmap.copyPixelsFromBuffer(ByteBuffer.wrap(bArrNative_ScreenCapBuffer));
            return bitmapCreateBitmap;
        }
        Log.i(TAG, "captureAmlogic: " + bArrNative_ScreenCapBuffer);
        return null;
    }

    public static void getScreenInfo(Context context, int[] iArr) {
        Display defaultDisplay = ((WindowManager) context.getApplicationContext().getSystemService("window")).getDefaultDisplay();
        DisplayMetrics displayMetrics = new DisplayMetrics();
        defaultDisplay.getRealMetrics(displayMetrics);
        iArr[0] = displayMetrics.widthPixels;
        iArr[1] = displayMetrics.heightPixels;
    }

    private static Bitmap invokeScreenshotSDK28(int i2, int i3) {
        Log.i(TAG, "invokeScreenshotSDK28: ");
        Rect rect = new Rect(0, 0, 0, 0);
        try {
            Class<?> cls = Class.forName("android.view.SurfaceControl");
            Class<?> cls2 = Integer.TYPE;
            return (Bitmap) cls.getDeclaredMethod("screenshot", Rect.class, cls2, cls2, cls2).invoke(null, rect, Integer.valueOf(i2), Integer.valueOf(i3), 0);
        } catch (Exception e2) {
            Log.e(TAG, "screenshot error!", e2);
            return null;
        }
    }

    private native void native_ConnectScreenControl();

    private native void native_ForceStop();

    private native int native_ScreenCap(int i2, int i3, int i4, int i5, int i6, int i7, int i8, String str);

    private native byte[] native_ScreenCapBuffer(int i2, int i3, int i4, int i5, int i6, int i7, int i8);

    private native int native_ScreenRecord(int i2, int i3, int i4, int i5, int i6, int i7, String str);

    private native void native_SetRecordParameter(String[] strArr, Object[] objArr);

    private native void native_StartReceiver(WeakReference<ScreenControlManager> weakReference);

    public static int native_proc(Object obj, int i2, int i3, long j2, Object obj2) {
        Log.d(TAG, "native_proc type:" + i2 + " frameType:" + i3 + " pts:" + j2);
        if (i2 != 1) {
            return 0;
        }
        try {
            AvcCallbackListener avcCallbackListener = mAvcCallbackListener;
            if (avcCallbackListener == null) {
                return 0;
            }
            avcCallbackListener.onAvcAvailable((byte[]) obj2, i3, j2);
            return 0;
        } catch (Throwable th) {
            Log.e(TAG, "native_proc error!:" + th);
            return 0;
        }
    }

    private native int native_startAvcRecord(int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10);

    private native int native_startYuvRecord(int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9);

    public static void setAvcCallbackListener(AvcCallbackListener avcCallbackListener) {
        mAvcCallbackListener = avcCallbackListener;
    }

    public static int setRecordParameter(String[] strArr, Object[] objArr) {
        synchronized (mLock) {
            try {
                INSTANCE.I.native_SetRecordParameter(strArr, objArr);
            } catch (Throwable th) {
                Log.e(TAG, "setRecordParameter error!:" + th);
                return -1;
            }
        }
        return 0;
    }

    public static int startAvcScreenRecord(int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10) {
        Log.d(TAG, "startAvcScreenRecord left:" + i2 + ",top:" + i3 + ",right:" + i4 + ",bottom:" + i5 + ",width:" + i6 + ",height:" + i7 + ",frameRate:" + i8 + ",bitRate:" + i9 + ",sourceType:" + i10);
        synchronized (mLock) {
            try {
                if (mAvcCallbackListener == null) {
                    return REMOTE_EXCEPTION;
                }
                INSTANCE.I.native_StartReceiver(new WeakReference<>(INSTANCE.I));
                return INSTANCE.I.native_startAvcRecord(i2, i3, i4, i5, i6, i7, i8, i9, i10);
            } catch (Throwable th) {
                Log.e(TAG, "startAvcScreenRecord: " + th);
                return REMOTE_EXCEPTION;
            }
        }
    }

    public static int stopScreenRecord() {
        synchronized (mLock) {
            try {
                INSTANCE.I.native_ForceStop();
            } catch (Throwable th) {
                Log.e(TAG, "stopScreenRecord error!:" + th);
                return -1;
            }
        }
        return 0;
    }
}
