github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/cecprivate/bindings/ffi_bindings.ts (about)

     1  import { importModule, Application, heap, Pointer } from "@ffi";
     2  
     3  importModule("plat/js/webext/cecprivate", (A: Application) => {
     4    const WEBEXT = typeof globalThis.browser === "undefined" ? globalThis.chrome : globalThis.browser;
     5  
     6    return {
     7      "constof_DisplayCecPowerState": (ref: heap.Ref<string>): number => {
     8        const idx = [
     9          "error",
    10          "adapterNotConfigured",
    11          "noDevice",
    12          "on",
    13          "standby",
    14          "transitioningToOn",
    15          "transitioningToStandby",
    16          "unknown",
    17        ].indexOf(A.H.get(ref));
    18        return idx < 0 ? 0 : idx + 1;
    19      },
    20      "has_QueryDisplayCecPowerState": (): heap.Ref<boolean> => {
    21        if (WEBEXT?.cecPrivate && "queryDisplayCecPowerState" in WEBEXT?.cecPrivate) {
    22          return A.H.TRUE;
    23        }
    24        return A.H.FALSE;
    25      },
    26      "func_QueryDisplayCecPowerState": (fn: Pointer): void => {
    27        A.store.Ref(fn, WEBEXT.cecPrivate.queryDisplayCecPowerState);
    28      },
    29      "call_QueryDisplayCecPowerState": (retPtr: Pointer): void => {
    30        const _ret = WEBEXT.cecPrivate.queryDisplayCecPowerState();
    31        A.store.Ref(retPtr, _ret);
    32      },
    33      "try_QueryDisplayCecPowerState": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
    34        try {
    35          const _ret = WEBEXT.cecPrivate.queryDisplayCecPowerState();
    36          A.store.Ref(retPtr, _ret);
    37          return A.H.TRUE;
    38        } catch (err: any) {
    39          A.store.Ref(errPtr, err);
    40          return A.H.FALSE;
    41        }
    42      },
    43      "has_SendStandBy": (): heap.Ref<boolean> => {
    44        if (WEBEXT?.cecPrivate && "sendStandBy" in WEBEXT?.cecPrivate) {
    45          return A.H.TRUE;
    46        }
    47        return A.H.FALSE;
    48      },
    49      "func_SendStandBy": (fn: Pointer): void => {
    50        A.store.Ref(fn, WEBEXT.cecPrivate.sendStandBy);
    51      },
    52      "call_SendStandBy": (retPtr: Pointer): void => {
    53        const _ret = WEBEXT.cecPrivate.sendStandBy();
    54        A.store.Ref(retPtr, _ret);
    55      },
    56      "try_SendStandBy": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
    57        try {
    58          const _ret = WEBEXT.cecPrivate.sendStandBy();
    59          A.store.Ref(retPtr, _ret);
    60          return A.H.TRUE;
    61        } catch (err: any) {
    62          A.store.Ref(errPtr, err);
    63          return A.H.FALSE;
    64        }
    65      },
    66      "has_SendWakeUp": (): heap.Ref<boolean> => {
    67        if (WEBEXT?.cecPrivate && "sendWakeUp" in WEBEXT?.cecPrivate) {
    68          return A.H.TRUE;
    69        }
    70        return A.H.FALSE;
    71      },
    72      "func_SendWakeUp": (fn: Pointer): void => {
    73        A.store.Ref(fn, WEBEXT.cecPrivate.sendWakeUp);
    74      },
    75      "call_SendWakeUp": (retPtr: Pointer): void => {
    76        const _ret = WEBEXT.cecPrivate.sendWakeUp();
    77        A.store.Ref(retPtr, _ret);
    78      },
    79      "try_SendWakeUp": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => {
    80        try {
    81          const _ret = WEBEXT.cecPrivate.sendWakeUp();
    82          A.store.Ref(retPtr, _ret);
    83          return A.H.TRUE;
    84        } catch (err: any) {
    85          A.store.Ref(errPtr, err);
    86          return A.H.FALSE;
    87        }
    88      },
    89    };
    90  });