PARTES DE UN SKIN
Un skin debe empezar siempre con <skin> y acabar con </skin>
Cualquier parte del código que no queréis que se ejecute, tipo la información de copyright o comentarios vuestros, lo podéis poner empezando por <!-- y acabando por -->. Es decir si ponéis en el skin una línea como esta :
<!--Hola soy Paco-->
el sistema pasará de ella.
Aunque un skin puede llevar otros elementos que más adelante nombraremos estas son las partes que básicamente componen un skin.
<output id="0">
Aquí le diremos que resolución tiene nuestro skin, normalmente será xres=1920 o 1280 e yres=1080 o 720.
La estructura usada es un sola línea :
<resolution xres="1920" yres="1080" bpp="32"/>
<colors>
Aquí definiremos todos los colores que vamos a usar en el skin. Si dentro de una screen se usa algún color no definido aquí, el skin petará.
Dónde definimos los colores? Lo más habitual es definirlos en el texto y fondos. Nos adentraremos más al hablar de las screens.
La estructura usada es la siguiente :
<color name="nombre_color" value="#xxyyyyyy"/>
Dónde :
- nombre_color será el nombre que le pondréis vosotros al color para luego llamarlo en cualquier screen
- xx será el valor de la transparencia que tendrá ese color (00 será opaco y 99 será transparente total)
- yyyyyy será el código del color en hexadecimal. Podéis ver más sobre código colores en https://www.color-hex.com/
Un truquillo para saber el código de un color es abrir Photoshop y cuando vas a la paleta de colores y seleccionas un color de da el código hex.
Ejemplo :
Código:
<color name="colorJR10" value="#35001123"/>
O sea, el color #001123
con una transparencia de 35, en el skin lo llamaremos colorJR10.
<fonts>
Aquí se definen las fuentes o tipos de letra que llevarán los textos en cada screen.
Mucho cuidado con este apartado, ya que si no se definen bien o hay algún problema con una fuente no arrancará enigma2. Aún así tendréis conexión FTP y podréis arreglar el desaguisado.
La estructura es la siguiente :
<font filename="ruta+nombre_archivo" name="nombre_fuente" scale="xxx"/>
Dónde :
- Ruta+nombre_archivo es como bien indica la ruta dónde está el archivo de la fuente y el nombre de dicho archivo. Ejemplo : /usr/share/enigma2/fonts/opensans.ttf. Las fuentes preinstaladas en enigma2 se encuentran en /usr/share/enigma2/fonts y las fuentes nuevas que vayáis a usar se meten en una carpeta fonts d'entre de la carpeta de vuestro skin.
- Nombre_fuente es el nombre con el que llamaréis a la fuente dentro de una screen.
- xxx es el factor de escala que se aplicará al tamaño que definamos en cada screen. 100 sería la medida que tiene por defecto la fuente. Si queremos bajar el tamaño pondremos un valor inferior a 100 y si queremos incrementarlo pondremos un valor superior a 100.
Algunas veces, sobretodo en skins 1080, os encontraréis con una línea como ésta :
<alias name="ServiceInfo" font="RegularHD" size="23" height="50"/>
Estas líneas que empiezan por alias definen las fuentes de algunas listas que lleva enigma2. Entraremos más en profundidad más adelante.
<subtitles>
Poco a decir en esta parte. No la he tocado nunca, pero se supone que actúas sobre las características de los subtítulos.
La estructura es :
<sub name="Subtitle_TTX" font="RegularHD;30" shadowColor="#40101010" shadowOffset="3,3"/>
Y como veis se define el nombre, la fuente usada y como opcional los shadowColor y ShadowOffset que son dos atributos de color para sombrear el contorno del texto.
<windowstyle type="skinned" id="0">
Aquí se definen algunas características comunes para el skin de lo que aparece en la pantalla de la TV.
Si esas características están definidas en la screen les dará prioridad pero si no están definidas pillará los datos de este apartado.
Ejemplo :
Código:
<color name="Background" color="colorJR3"/
Aquí le estamos diciendo que el atributo Background (fondo) de un cuadro de texto, label, lista, etc. tendrá el valor colorJR3, a no ser que se indique otro valor dentro de la screen.
Se definen varios atributos, entre ellos :
- Fuente de los títulos. Ejemplo :
<title offset="x,y" font="nombre_fuente; z" />
donde offset es la posición del título en las pantallas por defecto, y font las características de la fuente.
Otras opciones :
- name="Background"
- name="LabelForeground"
- name="ListboxBackground"
- name="ListboxForeground"
- name="ListboxSelectedBackground"
- name="ListboxSelectedForeground"
- name="ListboxMarkedBackground"
- name="ListboxMarkedForeground"
- name="ListboxMarkedAndSelectedBackground"
- name="ListboxMarkedAndSelectedForeground"
- name="WindowTitleForeground"
- name="WindowTitleBackground"
También dentro de windowstyle tenemos esto :
<borderset name="bsWindow">
aquí definimos todos los atributos de los bordes de las screens que no salen en el skin principal o que definimos con el atributo flags="wfBorder" (o simplemente no definimos el atributo, ya que por defecto las screens tienen wfBorder como definido. Más que definir, lo que hacemos es indicarle la ruta del png que hemos diseñado para dichos bordes.
Ejemplo :
<pixmap pos="bpTopLeft" filename="BlackSPA/window/dltesq.png" />
<pixmap pos="bpTop" filename="BlackSPA/window/dlt.png" />
<pixmap pos="bpTopRight" filename="BlackSPA/window/dltdrt.png" />
<pixmap pos="bpLeft" filename="BlackSPA/window/esq.png" />
<pixmap pos="bpRight" filename="BlackSPA/window/drt.png" />
<pixmap pos="bpBottomLeft" filename="BlackSPA/window/bxesq.png" />
<pixmap pos="bpBottom" filename="BlackSPA/window/bx.png" />
<pixmap pos="bpBottomRight" filename="BlackSPA/window/bxdrt.png"
donde :
bpTopLeft es la esquina superior izquierda.
bpTop es la parte superior central.
bpTopRight es la esquina superior derecha.
bpLeft es la parte central izquierda
bpRight es la parte cental derecha.
bpBottomLeft es la esquina inferior izquierda.
bpBottom es la parte inferior cental.
bpBottomRight es la esquina inferior derecha.
<windowstyle type="skinned" id="1">
Aquí se define algunas características comunes del skin del display LCD.
<parameters>
En algunos skins veréis también el apartado parameters, que se utilizan poco o nada en skins 720p, pero son casi obligatorios en skins 1080p. Aquí se definen parámetros de algunas listas o pantallas que no se pueden definir dentro de la screen.
Y a partir de aquí ya debemos definir las screens que van a componer el skin.