TOUCH CONTROL CENTER v5.6 - CORRIGIDO
======================================

Esta versão foi refeita diretamente, não apenas "patchada".

MUDANÇAS CONFIRMADAS
- Play/Pause da HOME fica no lado direito do card Spotify.
- Capa/nome da música abrem a página Música; o Play não muda de página.
- Fila abre em janela flutuante por cima do player.
- Playlists abrem em janela flutuante por cima do player.
- Jam abre em janela flutuante por cima do player.
- As listas continuam rolando por touch, mas sem barra visual lateral.
- Botão superior X fecha a aplicação.
- O app usa janela própria via pywebview, não uma janela do Edge.
- Ao gerar o EXE, o ícone próprio é embutido no executável.
- Login Spotify PKCE foi refeito.
- Logout preserva clima e demais configurações.
- CPU Power mapeado para Ryzen 5 5600 > Powers > Package.
- CPU Clock mapeado para Ryzen 5 5600 > Clocks > Cores (Average).
- GPU Power mapeado para RX 580 > Powers > GPU Package.
- GPU Core Clock mapeado.
- GPU Memory Clock mapeado.
- VRAM calculada usando GPU Memory Used / GPU Memory Total.
- Tela SISTEMA mostra W, MHz e VRAM também.

SPOTIFY
No Spotify Developer, mantenha EXATAMENTE:
http://127.0.0.1:8765/

Depois:
1. Abra config.json.
2. Coloque seu Client ID.
3. Inicie o dashboard.
4. Clique DESCONECTAR, caso exista uma sessão antiga.
5. Clique CONECTAR SPOTIFY.
6. Autorize novamente.

EXE
1. Execute build_exe.bat.
2. Aguarde.
3. Abra dist\TouchControlCenter.exe.
4. Apague atalhos antigos.
5. Execute criar_atalho_desktop.bat para criar o atalho com o ícone correto.

SENSORES
No LibreHardwareMonitor:
Options > Remote Web Server > Run

O painel consulta:
http://127.0.0.1:8085/data.json


ATUALIZAÇÃO v5.7 — FULLSCREEN
-----------------------------
- Botão de tela cheia corrigido para a janela nativa do aplicativo.
- Usa window.toggle_fullscreen() via API do pywebview.
- Mantém fallback para Fullscreen API do navegador.
- O botão da HOME e o botão em AJUSTES usam a mesma correção.

Se estiver usando o EXE:
gere novamente com build_exe.bat.


HOTFIX v5.7.1
-------------
- Corrigido erro de sintaxe JavaScript introduzido na v5.7.
- Relógio, clima, CPU, GPU, RAM, rede, discos e Spotify voltam a inicializar.
- Fullscreen nativo via pywebview mantido.
- Nenhum layout ou recurso anterior foi removido.


HOTFIX v5.7.2 — JANELA NÃO RESPONDENDO
--------------------------------------
- Corrigido deadlock do botão de tela cheia no pywebview.
- Fullscreen agora é executado em thread separada.
- A chamada do JavaScript retorna imediatamente e não bloqueia a interface.
- Proteção contra duplo toque no botão de tela cheia.
- Spotify Client ID já preenchido no config.json e default_config.json.

Se estiver usando EXE, gere novamente com build_exe.bat.


ATUALIZAÇÃO v5.8 — ESTABILIDADE E SISTEMA
-----------------------------------------
- Inicialização refeita para evitar app que não abre.
- Fecha automaticamente uma instância antiga antes de iniciar.
- Aguarda o servidor local responder antes de abrir a janela.
- Tenta WebView2/EdgeChromium primeiro e usa fallback se necessário.
- Porta 8765 com allow_reuse_address.
- Página SISTEMA compactada para caber sem rolagem.
- Os 3 armazenamentos aparecem na mesma linha.
- Removido o card GPU MEMORY CLOCK (o valor ~1000 MHz).
- Mantidos CPU W/MHz, GPU W/MHz/VRAM, RAM, rede e discos.


ATUALIZAÇÃO v5.9 — LOGIN SPOTIFY SEM TRAVAR
-------------------------------------------
A autenticação do Spotify NÃO abre mais dentro da janela do Touch Control Center.

Novo fluxo:
1. Toque em CONECTAR SPOTIFY.
2. O navegador padrão do Windows abre o site oficial do Spotify.
3. Faça login/autorize normalmente no Chrome/Edge/Firefox.
4. O navegador retorna para http://127.0.0.1:8765/
5. O servidor local conclui o PKCE.
6. O Touch Control Center detecta a autorização automaticamente.

Isso evita as telas "Não está respondendo" causadas pelas páginas de login dentro do WebView.

IMPORTANTE:
No Spotify Developer, a Redirect URI continua EXATAMENTE:
http://127.0.0.1:8765/


ATUALIZAÇÃO v6.0 — PERSONALIZAÇÃO
- Tema claro e escuro.
- Roxo, azul, ciano, verde, laranja, rosa e cor personalizada.
- Preferências salvas automaticamente.

DEPENDÊNCIAS
- Usando o EXE, Python não é necessário.
- O navegador externo só é usado para autenticar o Spotify.
- LibreHardwareMonitor ainda é necessário para temperatura, watts, clocks e VRAM.
- É possível remover essa dependência em uma próxima versão integrando a biblioteca de sensores ao próprio dashboard.


ATUALIZAÇÃO v6.1 — APP UNIFICADO
--------------------------------
- Um único TouchControlCenter.exe visível.
- O build baixa a versão oficial mais recente do LibreHardwareMonitor do GitHub.
- O LibreHardwareMonitor é empacotado dentro do EXE e iniciado oculto automaticamente.
- Você não precisa mais abrir o LibreHardwareMonitor manualmente.
- Tema, cor, cor personalizada, autostart, fullscreen e monitor são salvos em settings.json.
- Opção "Iniciar com o Windows".
- Opção "Abrir em tela cheia".
- Seletor do monitor onde o painel deve abrir.
- Ao iniciar, a janela é movida para o monitor salvo antes do fullscreen.

OBSERVAÇÃO TÉCNICA
Internamente o módulo de sensores ainda roda como processo auxiliar, porque o LibreHardwareMonitor
é uma biblioteca/aplicativo .NET. Para você, porém, existe apenas um aplicativo para abrir e usar.
O helper fica oculto e é gerenciado pelo Touch Control Center.

BUILD
Execute build_exe.bat com internet na primeira compilação.
Ele baixa exclusivamente a release oficial:
https://github.com/LibreHardwareMonitor/LibreHardwareMonitor


HOTFIX v6.1.1 — SEM DEADLOCK
----------------------------
- Removidas chamadas de move/fullscreen pela API do pywebview.
- Janela agora é posicionada e colocada em fullscreen usando Win32 diretamente.
- Botão fullscreen chama endpoint local e retorna imediatamente.
- CPU/RAM/discos/Spotify carregam antes da detecção de monitores e Ajustes.
- Mesmo que EnumDisplayMonitors ou settings falhem, a Home continua atualizando.
- Detecção de monitores refeita com tipos Win32 corretos.


ATUALIZAÇÃO v6.1.2 — UI + SENSORES
----------------------------------
- Tema claro com roxo mais suave.
- Contraste de textos aumentado.
- Botões de Ajustes agora ficam legíveis no tema claro.
- Texto secundário mais escuro no tema claro.
- O dashboard agora baixa automaticamente o LibreHardwareMonitor oficial
  quando você executa start.bat e o módulo de sensores não está disponível.
- Você não precisa instalar/abrir LibreHardwareMonitor manualmente.
- CPU Watts, CPU MHz, GPU Watts e VRAM podem levar alguns segundos na primeira
  execução enquanto o helper oficial é baixado e iniciado.

A primeira execução precisa de internet para baixar o módulo oficial de sensores.
Depois ele fica salvo na pasta _runtime do Touch Control Center.


ATUALIZAÇÃO v6.1.3 — GPU + REDE
- Parser do LibreHardwareMonitor por categoria real.
- RX 580: temperatura, uso, watts, clock e VRAM com fallback.
- Rede calculada apenas por interfaces ativas com IP.
- Loopback e adaptadores virtuais comuns são excluídos.


ATUALIZAÇÃO v6.2 — STANDALONE / SEM PYTHON INSTALADO
----------------------------------------------------
Agora você NÃO precisa instalar Python manualmente para gerar o executável.

Use:
GERAR_EXE_SEM_PYTHON.bat

O gerador:
1. Baixa o instalador oficial do Python 3.11.9.
2. Instala o Python SOMENTE dentro da pasta _build do projeto.
3. Instala PyInstaller e dependências nesse ambiente local.
4. Baixa a release oficial do LibreHardwareMonitor.
5. Empacota tudo no TouchControlCenter.exe.
6. Copia config.json para a pasta dist.

Depois disso, o arquivo:
dist\TouchControlCenter.exe

pode ser usado em um PC sem Python instalado.

A pasta _build é necessária apenas para recompilar.
Se quiser liberar espaço depois de gerar o EXE, execute:
LIMPAR_AMBIENTE_DE_BUILD.bat

IMPORTANTE
- O app final continua salvando configurações fora do conteúdo interno do EXE.
- Tema, cor, monitor, inicialização e demais preferências não precisam ser
  recompilados a cada mudança.
- O LibreHardwareMonitor fica integrado ao pacote e é iniciado oculto pelo app.


HOTFIX v6.2.1 — GERADOR SEM PYTHON
----------------------------------
O gerador não usa mais o instalador tradicional do Python.

Agora:
- baixa o Python EMBEDDABLE oficial;
- extrai diretamente em _build\python;
- habilita import site;
- instala pip com get-pip.py;
- usa esse Python portátil para rodar PyInstaller.

Isso corrige o erro:
"O sistema não pode encontrar o caminho especificado"

Se você tentou a v6.2 antes:
1. Apague a pasta _build antiga, OU execute LIMPAR_AMBIENTE_DE_BUILD.bat.
2. Execute GERAR_EXE_SEM_PYTHON.bat.


ATUALIZAÇÃO v6.2.2 — DIAGNÓSTICO
--------------------------------
Em AJUSTES > DIAGNÓSTICO você pode ver exatamente:
- se o LibreHardwareMonitor está acessível;
- quantos sensores foram encontrados;
- todos os sensores de GPU identificados;
- todos os sensores de CPU identificados;
- interfaces de rede detectadas;
- valores atuais que o backend está usando.

Use BAIXAR TXT e envie o arquivo TouchControlCenter_diagnostico.txt
para mapearmos os sensores exatamente.


ATUALIZAÇÃO v6.4 — SENSOR HOST NATIVO
-------------------------------------
LibreHardwareMonitor.exe deixou de ser usado como aplicativo auxiliar.

Novo componente:
SensorHost\TouchControlSensorHost

Ele referencia o pacote NuGet LibreHardwareMonitorLib 0.9.6 e é publicado
como EXE self-contained do .NET 8. O processo não possui UI e é iniciado
com CREATE_NO_WINDOW pelo Touch Control Center.

O build empacota TouchControlSensorHost.exe dentro do TouchControlCenter.exe.
Para o usuário continua existindo um único aplicativo visível.
