# API Light Alloy

W Light Alloy możliwe jest otrzymywanie komunikatów systemowych z innego programu wykorzystując do tego API Light Alloy. Umożliwia to innym programom w prosty i precyzyjny sposób sterowanie odtwarzaczem bez potrzeby emulowania klawiszy i myszki. Wśród programów, które korzystają z interfejsu API do sterowania Light Alloy są: Remotty i RC Assistant.

## Zarządzanie Light Alloy za pomocą API

Zarządzanie Light Alloy za pomocą API wykonywane jest poprzez wysłanie komunikatu okna z nazwą klasy LightAlloyFront.

Numer komunikatu = WM_APP + 2504 (0x89C8)

Poniżej znajdują się polecenia, które rozumie Light Alloy:

LAC_FILE_OPEN = 50; //Otwórz plik LAC_FILE_OPEN_URL = 51; //Otwórz URL LAC_FILE_PLAY_DVD_DISC = 52; //Otwórz dysk DVD/Blu-ray/Audio CD LAC_FILE_OPEN_DVD_FOLDER_NO_MENU = 53; //Otwórz DVD bez menu LAC_FILE_OPEN_DVD_FOLDER = 54; //Otwórz folder z DVD/Blu-ray LAC_FILE_OPEN_TV = 55; //Pełnoekranowe menu otwierania plików LAC_FILE_PLAY_CDDVD = 56; //Otwórz dysk CD/DVD LAC_FILE_PLAY_BD_DISC = 57; //Otwórz dysk Blu-ray LAC_FILE_PLAY_AUD_DISC = 58; //Otwórz dysk Audio CD LAC_APPLICATION_HISTORY = 59; //Rozszerzona historia plików LAC_FILE_INFO = 60; //Informacje o pliku LAC_FILE_OSD_INFO = 61; //Informacje o pliku na ekranie LAC_FILE_INFO_PLAYLIST = 62; //Informacje o pliku LAC_FILE_OPEN_RADIOVIEWER = 63; //Katalog internetowych radiostacji LAC_FILE_RADIO_ON_OFF = 64; //Radio: włącz/wyłącz LAC_FILE_RADIO_RECSTART = 65; //Radio: rozpocznij zapis LAC_FILE_RADIO_RECSTOP = 66; //Radio: zatrzymaj zapis LAC_FILE_RADIO_REC_START_STOP = 67; //Radio: start/stop zapis LAC_PLAYBACK_PLAY = 100; //Odtwarzaj LAC_PLAYBACK_STOP = 101; //Wstrzymaj LAC_PLAYBACK_STOP_PLAY = 102; //Odtwarzaj / Wstrzymaj LAC_PLAYBACK_REAL_STOP = 103; //Zatrzymaj LAC_PLAYBACK_SPEED_PLAY = 104; //Szybkość odtwarzania LAC_PLAYBACK_FILTERS = 105; //Drzewko filtrów LAC_PLAYBACK_SPEED_PLAY_UP = 106; //Szybkość odtwarzania LAC_PLAYBACK_SPEED_PLAY_DN = 107; //Szybkość odtwarzania LAC_SEEK_FRAME_STEP = 150; //Klatka do przodu LAC_SEEK_FRAME_BACK = 151; //Klatka do tyłu LAC_SEEK_FORWARD = 152; //Przewiń do przodu LAC_SEEK_BACKWARD = 153; //Przewiń do tyłu LAC_SEEK_JUMP_FORWARD = 154; //Przeskocz do przodu LAC_SEEK_JUMP_BACKWARD = 155; //Przeskocz do tyłu LAC_SEEK_SUBTITLE_NEXT = 156; //Napisy do przodu LAC_SEEK_SUBTITLE_PREV = 157; //Napisy do tyłu LAC_SEEK_REWIND = 158; //Przewiń na początek LAC_SEEK_SET_BOOKMARK = 159; //Ustaw zakładkę LAC_SEEK_LAST_POS = 160; //Przewiń do pozycji zatrzymania LAC_SEEK_A_B = 161; //Powtarzanie segmentu А-B LAC_SEEK_SET_O = 162; //Zaznacz początek automatycznego pomijania LAC_SEEK_SET_E = 163; //Zaznacz koniec automatycznego pomijania LAC_SEEK_SET_OE = 164; //Zaznacz zakończenie początku LAC_SEEK_SET_EO = 165; //Zaznacz początek zakończenia LAC_SEEK_SHOW_OE_PROPS = 166; //Ustawienia automatycznego przewijania LAC_SEEK_INVERSION = 167; //Automatyczne pomijanie normalne/odwrócone LAC_SEEK_ENABLE_OE = 168; //Automatyczne pomijanie rozpoczęcia/zakończenia LAC_WINDOW_CONTROL_PANEL = 200; //Panel sterowania LAC_WINDOW_STAY_ON_TOP = 201; //Na wierzchu wszystkich okien LAC_WINDOW_MINIMIZE = 202; //Minimalizuj LAC_WINDOW_MAXIMIZE = 203; //Maksymalizuj LAC_WINDOW_FULLSCREEN = 204; //Okno / Pełny ekran LAC_WINDOW_ORIGINAL = 205; //Domyślny rozmiar LAC_WINDOW_PLAYLIST = 206; //Lista odtwarzania LAC_WINDOW_EX_PLAYLIST = 207; //Wewnętrzna lista odtwarzania LAC_WINDOW_ADVDIR = 208; //Tryb listy odtwarzania LAC_WINDOW_PLAYLIST_SIZE = 209; //Rozmiar listy odtwarzania LAC_WINDOW_ADVDIR_DIR_SIZE = 210; //Rozmiar panelu katalogów LAC_WINDOW_GET_USER_SIZE = 211; //Zachowaj pozycję i rozmiar odtwarzacza LAC_WINDOW_SET_USER_SIZE = 212; //Wczytaj pozycję i rozmiar odtwarzacza LAC_WINDOW_HIDE_FROM_BOSS = 213; //Anty-szef LAC_PLAYLIST_SHOW_HIDE_SEARCH = 250; //Pole wyszukiwania: pokaż / ukryj LAC_PLAYLIST_ADVDIR_FAVORITE = 251; //Tryb folderów - Ulubione LAC_PLAYLIST_ADVDIR_GO_MYPATH = 252; //Tryb folderów - Ulubiony folder LAC_PLAYLIST_PLAY = 253; //Odtwarzaj wybrany LAC_PLAYLIST_NEXT = 254; //Następny z listy odtwarzania LAC_PLAYLIST_PREV = 255; //Poprzedni z listy odtwarzania LAC_PLAYLIST_ADD_FILES = 256; //Dodaj plik LAC_PLAYLIST_ADD_FOLDER = 257; //Dodaj folder do listy odtwarzania LAC_PLAYLIST_DELETE = 258; //Usuń z listy odtwarzania LAC_PLAYLIST_DELETE_FILE = 259; //Usuń plik LAC_PLAYLIST_CLEAR = 260; //Wyczyść listę odtwarzania LAC_PLAYLIST_SAVE = 261; //Zapisz listę odtwarzania LAC_PLAYLIST_REPORT = 262; //Tablica listy odtwarzania (karta html) LAC_PLAYLIST_MOVE_UP = 263; //Przenieś wyżej LAC_PLAYLIST_MOVE_DOWN = 264; //Przenieś niżej LAC_PLAYLIST_SORT = 265; //Sortuj listę odtwarzania LAC_PLAYLIST_VISUALSHUFFLE = 266; //Wymieszaj listę odtwarzania LAC_PLAYLIST_SHUFFLE = 267; //Odtwarzaj w kolejności losowej LAC_PLAYLIST_REPEAT = 268; //Powtarzanie listy odtwarzania LAC_PLAYLIST_REPEAT_FILE = 269; //Powtarzanie pliku LAC_PLAYLIST_BOOKMARKS = 270; //Zakładki w liście odtwarzania LAC_PLAYLIST_JUMP = 271; //Przejdź do pliku LAC_PLAYLIST_SEARCH_FILE = 272; //Pokaż lokalizację pliku LAC_PLAYLIST_RENAME_FILE = 273; //Zmień nazwę pliku lub zakładki LAC_PLAYLIST_MANAGER = 274; //Menedżer List odtwarzania LAC_PLAYLIST_SKIP_FILE = 275; //Pomiń plik LAC_PLAYLIST_SELECT_ALL = 276; // Zaznacz wszystkie pliki LAC_VIDEO_PROPERTIES = 300; //Ustawienia wideo LAC_VIDEO_SCREENSHOT = 301; //Zapisz zrzut ekranowy LAC_VIDEO_SCREENSHOT_CB = 302; //Kopiuj zrzut ekranowy do schowka systemowego LAC_VIDEO_SAVE_THUMBNAILS = 303; //Zapisz galerię miniatur LAC_VIDEO_SAVE_SCREENS_PACK = 304; //Zapisz pakiet zrzutów w pełnym rozmiarze LAC_VIDEO_OPEN_SCR_FOLDER = 305; //Otwórz folder ze zrzutami ekranu LAC_VIDEO_SCALE_50 = 306; //Skalowanie 50% LAC_VIDEO_SCALE_100 = 307; //Skalowanie 100% LAC_VIDEO_SCALE_150 = 308; //Skalowanie 150% LAC_VIDEO_SCALE_200 = 309; //Skalowanie 200% LAC_VIDEO_RATIO_ASIS = 310; //Proporcje takie jak są LAC_VIDEO_RATIO_16_9 = 311; //Proporcje 16:9 LAC_VIDEO_RATIO_4_3 = 312; //Proporcje 4:3 LAC_VIDEO_RATIO_WIDTH = 313; //Proporcje wg szerokości LAC_VIDEO_RATIO_HEIGHT = 314; //Proporcje wg wysokości LAC_VIDEO_RATIO_CUSTOM = 315; //Sprecyzowane proporcje LAC_VIDEO_RATIO_CUSTOM_SET = 316; //Sprecyzowane proporcje LAC_VIDEO_RATIO_FREE = 317; //Bez utrzymywania proporcji LAC_VIDEO_RATIO_PIXEL = 318; //Proporcje piksel-w-piksel LAC_VIDEO_ZOOM_IN = 319; //Powiększ obraz LAC_VIDEO_ZOOM_OUT = 320; //Pomniejsz obraz LAC_VIDEO_BRIGHTNESS_INC = 321; //Zwiększ jasność LAC_VIDEO_BRIGHTNESS_DEC = 322; //Zmniejsz jasność LAC_VIDEO_CONTRAST_INC = 323; //Zwiększ kontrast LAC_VIDEO_CONTRAST_DEC = 324; //Zmniejsz kontrast LAC_VIDEO_SATURATION_INC = 325; //Zwiększ nasycenie LAC_VIDEO_SATURATION_DEC = 326; //Zmniejsz nasycenie LAC_VIDEO_COLOR_RESET = 327; //Resetuj ustawienia kolorów LAC_VIDEO_SETS_RESTORE = 328; //Resetuj ustawienia skalowania i rozmiarów LAC_VIDEO_RATIO_SWITCH = 329; //Przełącz proporcje LAC_VIDEO_DEBUG_OSD = 330; //Pokaż na wideo techniczne OSD LAC_VIDEO_OSD_INFO_CB = 331; //Zapisz info OSD filmu do schowka systemowego LAC_VIDEO_SUBS_DEBUG_OSD = 332; //Pokaż techniczne OSD dla napisów LAC_VIDEO_SHOW_STATS = 333; //Pokaż techniczne statystyki LAC_VIDEO_USE_VSYNC = 334; //Włącz VSync LAC_VIDEO_USE_ACCURVSYNC = 335; //Włącz dokładną VSync LAC_VIDEO_USE_ALTERVSYNC = 336; //Włącz alternatywną VSync LAC_VIDEO_FLUSHGPU_BEF_VS = 337; //Wypełnij GPU przed VSync LAC_VIDEO_FLUSHGPU_AFT_PR = 338; //Wypełnij GPU po przedstawieniu LAC_VIDEO_FLUSHGPU_WAIT = 339; //Oczekuj na wypełnienie GPU LAC_VIDEO_USE_FRAME_TC = 340; //Włącz korekcję czasu klatki LAC_VIDEO_DIS_AERO = 341; //Wyłącz efekty Pulpitu (Aero) LAC_VIDEO_USE_16_235_OR = 342; //Użyj zakres wyjścia 16-235 LAC_VIDEO_PAN_SCAN_LEFT = 343; //Przesuń obraz w lewo LAC_VIDEO_PAN_SCAN_RIGHT = 344; //Przesuń obraz w prawo LAC_VIDEO_PAN_SCAN_UP = 345; //Przesuń obraz w górę LAC_VIDEO_PAN_SCAN_DOWN = 346; //Przesuń obraz w dół LAC_SUBTITLES_LOAD = 350; //Wczytaj napisy LAC_SUBTITLES_LOAD_TV = 351; //Pełnoekranowe menu wczytywania napisów LAC_SUBTITLES_SHOW = 352; //Wyświetlaj napisy LAC_SUBTITLES_SWITCH = 353; //Przełącz napisy LAC_SUBTITLES_SHOW2 = 354; //Wyświetlaj napisy Nr2 LAC_SUBTITLES_SWITCH2 = 355; //Przełącz napisy Nr2 LAC_SUBTITLES_PROPERTIES = 356; //Ustawienia napisów LAC_SUBTITLES_TS_INC = 357; //Zwiększ przesunięcie napisów LAC_SUBTITLES_TS_DEC = 358; //Zmniejsz przesunięcie napisów LAC_SUBTITLES_FONT_INC = 359; //Powiększ rozmiar napisów LAC_SUBTITLES_FONT_DEC = 360; //Pomniejsz rozmiar napisów LAC_SOUND_ADD = 400; //Wczytaj ścieżkę dźwiękową LAC_SOUND_SWITCH_STREAM = 401; //Przełącz ścieżkę dźwiękową LAC_SOUND_PROPERTIES = 402; //Ustawienia dźwięku LAC_SOUND_VOLUME_INC = 403; //Zwiększ głośność LAC_SOUND_VOLUME_DEC = 404; //Zmniejsz głośność LAC_SOUND_MUTE = 405; //Wyłącz dźwięk LAC_SOUND_TS_MINUS = 406; //Przesuń dźwięk do tyłu LAC_SOUND_TS_PLUS = 407; //Przesuń dźwięk do przodu LAC_SOUND_PITCH_INC = 408; //Zwiększ wysokość tonacji dźwięku LAC_SOUND_PITCH_DEC = 409; //Zmniejsz wysokość tonacji dźwięku LAC_SOUND_PITCH_DEF_ONE = 410; //Domyślna tonacja dźwięku dla aktualnej szybkości LAC_SOUND_PITCH_DEF_ALL = 411; //Domyślna tonacja dźwięku dla wszystkich szybkości LAC_APPLICATION_PREFERENCES = 450; //Ustawienia LAC_APPLICATION_HELP = 451; //Pomoc LAC_APPLICATION_ABOUT = 452; //O programie LAC_APPLICATION_EXIT = 453; //Wyjdź LAC_APPLICATION_MONITOR_OFF = 454; //Wyłącz monitor LAC_APPLICATION_POWER_OFF = 455; //Wyłącz PC LAC_APPLICATION_POW_ONPLDONE = 456; //Wyłącz PC po zakończeniu listy odtwarzania LAC_APPLICATION_HIBERNATE = 457; //Tryb hibernacji LAC_APPLICATION_HIB_ONPLDONE = 458; //Tryb hibernacji po zakończeniu listy LAC_APPLICATION_MEDIAHISTORY_CLEAR = 459; //Wyczyść historię odtwarzania mediów LAC_APPLICATION_CLEAR_MEDIA_SETTINGS = 460; //Wyczyść historię odtwarzania mediów i pamięć LAC_APPLICATION_WL_KEYS_REMINDER = 461; //Przypomnij polecenia przypisane do WinLIRC LAC_APPLICATION_SCHEDULER = 462; //Planner LAC_APPLICATION_SLEEP = 463; //Tryb wyczekiwania LAC_APPLICATION_AGENT_CLOSE = 464; //Zamknij LAAgent.exe LAC_NAVIGATION_TITLE = 500; //Menu filmu LAC_NAVIGATION_ROOT = 501; //Menu główne LAC_NAVIGATION_SUBS = 502; //Menu napisów LAC_NAVIGATION_AUDIO = 503; //Menu audio LAC_NAVIGATION_ANGLE = 504; //Menu kątów widzenia kamery LAC_NAVIGATION_SCENES = 505; //Menu scen LAC_NAVIGATION_PREV = 506; //Poprzedni rozdział LAC_NAVIGATION_NEXT = 507; //Następny rozdział

## Przykład użycia API Light Alloy

Poniżej znajdują się dwa skrypty AutoIt3, które działają podobnie. Jedyną różnicą jest to, że pierwszy zajmuje nieco mniej miejsca, a drugi jest nieco mniej skomplikowany:

#include <SendMessage.au3> $hWnd = WinWait("[CLASS:LightAlloyFront]", "", 0) _SendMessage($hwnd, 0x89C8, 100)

#include <SendMessage.au3> Local Const $LAC_PLAYBACK_PLAY = 100 $hWnd = WinWait("[CLASS:LightAlloyFront]", "", 0) _SendMessage($hwnd, 0x89C8, $LAC_PLAYBACK_PLAY)