videomodeconfiguration
El objeto configuración de modo de video le permite configurar la resolución de video y recuperar la configuración de salida de video.
IDL de videomodeconfiguration
interface VideoModeConfiguration {
Promise<ModeList> getAvailableModes();
Promise<Mode> getBestMode(String connector);
Promise<Mode> getActiveMode();
Promise<Mode> getConfiguredMode();
Promise<SetModeResult> setMode(Mode mode);
Promise<SetModeResult> setCustomModeline(String modeline)
Promise<ScreenConfigList> getScreenModes();
Promise<SetModeResult> setScreenModes(ScreenConfigList configs);
};
interface Mode {
attribute String modeName;
attribute String colorSpace;
attribute String colorDepth;
attribute int frequency;
attribute bool dropFrame;
attribute int width;
attribute int height;
attribute int graphicsPlaneHeight;
attribute int graphicsPlaneWidth;
attribute bool preferred;
attribute bool interlaced;
attribute int overscan;
};
interface SetModeResult {
attribute bool restartRequired;
};
interface ScreenConfig {
attribute String outputName;
attribute String videoMode;
attribute int screenX;
attribute int screenY;
attribute String transform;
attribute bool enabled;
};Creación de objetos
Para crear el objeto vidoemodeconfiguration , primero cargue el módulo brightsign/videomodeconfiguration usando el método require() . Luego cree una instancia de la clase videomodeconfiguration .
var VideoModeConfigurationClass = require("@brightsign/videomodeconfiguration");
var videoConfig = new VideoModeConfigurationClass();VideoModeConfiguration
Use esta interfaz para recuperar y modificar la configuración del modo de video.
getAvailableModes()
Promise<ModeList> getAvailableModes() Devuelve una lista que contiene todos los modos de video compatibles con el reproductor. Cada modo de video compatible aparece como una instancia de Modo.
getBestMode()
Promise<Mode> getBestMode(String connector)Devuelve el modo de video compatible más grande, según lo informado por la pantalla a través de EDID. El conector de video puede especificarse como "hdmi" o "vga" (estos valores distinguen entre mayúsculas y minúsculas). Si la pantalla no devuelve un valor de resolución mediante EDID, este método devuelve una cadena vacía. Si no hay ninguna pantalla conectada, este método devuelve "Cannot read edid information".
getActiveMode()
Promise<Mode> getActiveMode() Devuelve una interfaz Modo que contiene información sobre el modo de video activo actual.
getConfiguredMode()
Promise<Mode> getConfiguredMode() Devuelve una interfaz Modo que contiene información sobre el modo de video que se ha configurado con el método setMode() . Si el modo de video no se ha configurado con setMode() (o si se ha establecido en "auto"), este método devolverá null.
setMode()
Promise<SetModeResult> setMode(Mode mode)Establece el modo de salida de video utilizando una interfaz Modo pasada como argumento. Este método devuelve una promesa que contiene una interfaz SetModeResult que indica si se requiere un reinicio para que la configuración de video especificada surta efecto.
setCustomModeline()
Promise<SetModeResult> setCustomModeline(String modeline)Establece el videomode personalizado con el modeline proporcionado (consulte Aplicar una resolución personalizada). Luego, el videomode personalizado puede seleccionarse usando setMode.
getScreenModes()
Promise<ScreenConfigList> getScreenModes()Devuelve una matriz que describe cada salida disponible en el hardware de su reproductor y cómo están configuradas esas salidas. Este método se implementó a partir de BOS 9.0.15.
La interfaz ScreenConfig contiene la configuración devuelta por getScreenModes():
- outputName string: HDMI-1, 2, 3 o 4
- videoMode string: El videomode puede ser:
- Un videomode con formato BrightSign conocido (por ejemplo, 1920x1080x60p)
- Un modeline completo como se describe en esta página
- auto que difiere ligeramente de las plataformas anteriores. auto no se recomienda cuando se utilizan múltiples salidas porque las posiciones del lienzo son fijas y, por lo tanto, si una pantalla usa una resolución inesperada, no se posicionará correctamente en el lienzo.
- screenX int: La posición de la pantalla en el lienzo. El origen (0,0) es la esquina superior izquierda, y cada pantalla puede posicionarse en relación con este. Esto permite dejar espacios en el lienzo entre pantallas para la compensación del bisel.
- screenY int: La posición de la pantalla en el lienzo. El origen (0,0) es la esquina superior izquierda, y cada pantalla puede posicionarse en relación con este. Esto permite dejar espacios en el lienzo entre pantallas para la compensación del bisel.
- transformar string: Una de las rotaciones normal, 90, 180 o 270. Cada pantalla puede rotarse independientemente y cuando una pantalla se rota, todo el contenido, incluido el video, se rotará.
- habilitado bool: Si la pantalla está habilitada para salida
setScreenModes()
Promise<SetModeResult> setScreenModes(ScreenConfigList configs)Toma el mismo formato como argumento que devuelve getScreenModes() . De forma predeterminada, una sola pantalla está habilitada. El reproductor utiliza gráficos de resolución completa si cualquiera de los videomodes configurados mediante SetScreenModes usa el modificador :fullres . Consulte esta página para comprender cómo funcionan las coordenadas de visualización x/y con la resolución de salida.
Este método se implementó a partir de BOS 9.0 y versiones posteriores.
Modo
Esta interfaz contiene la configuración de una configuración de video-mode.
En los modos 4K, el plano de gráficos puede ser más pequeño que el plano y la salida de video. En estos casos, el plano de gráficos se amplía para coincidir con el plano/salida de video.
- modeName string: Una descripción del modo de video (así como cualquier parámetro adicional de parámetros de modo de video). El modo de video también puede configurarse como "Auto", “gfxmemlarge” o "custom", que utilizará el modo configurado mediante setCustomModeline.
- espacio de color string: El espacio de color de la señal de video ("rgb", "yuv420" o "yuv422")
- colorDepth string: La profundidad de color de la señal de video ("8bit", "10bit" o "12bit")
- frecuencia int: La frecuencia de cuadros de la salida de video
- dropFrame bool: Si el código de tiempo del video utiliza drop frames
- ancho int: El ancho de la salida de video
- altura int: La altura de la salida de video
- graphicsPlaneHeight int: El ancho del plano gráfico
- graphicsPlaneWidth int: La altura del plano gráfico
- preferido bool: Si el modo de video es el modo preferido , lo que indica al reproductor que solo use el modo de video si el EDID de la pantalla indica que es compatible. De lo contrario, la salida cambiará por defecto al modo video "Auto" . Si no se detecta ningún EDID durante el arranque, el reproductor generará el modo de video preferred. Si posteriormente ocurre un evento de conexión en caliente HDMI® , entonces el reproductor realizará de nuevo la comprobación del modo de video preferred.
- preferido mode ignora la configuración del perfil de video (es decir, el espacio de color y la profundidad de bits).
- entrelazado bool: Si la salida de video es entrelazada
- overscan int: Si la salida de video está usando una configuración de overscan o no
SetModeResult
Esta interfaz es devuelta por el método setMode().
- restartRequired bool: Un indicador que señala si se requiere o no un reinicio para que el cambio en la configuración de video surta efecto.
ScreenConfig
- outputName string
- videoMode string
- screenX int
- screenY int
- transformar string
- habilitado bool
Ejemplo
Este script recupera el modo de video compatible más grande (según lo informado por el EDID de la pantalla a través de HDMI) y establece la salida de video en este modo. Luego reinicia el reproductor si es necesario.
var VideoModeConfigurationClass = require("@brightsign/videomodeconfiguration");
var videoConfig = new VideoModeConfigurationClass();
var SystemClass = require("@brightsign/system");
var system = new SystemClass();
var bestRes = "";
videoConfig.getBestMode("hdmi").then(
function(data) {
bestRes = data;
})
.catch(
function(data) {
console.log(JSON.stringify(data));
});
var configData = {};
configData.modeName = bestRes;
videoConfig.setMode(configData).then(
function(data) {
if (data.restartRequired === true) {
system.reboot();
} else {
console.log("Reboot not required.")
}
})
.catch(
function(data) {
console.log(JSON.stringify(data));
});