# 9.1 Programma-interface (API)

In Light Alloy is er een mogelijkheid om systeemberichten te ontvangen uit een programma van derden, met behulp van de application programming interface (API): de programma-interface van Light Alloy. Hierdoor kan een programma van derden eenvoudig en nauwkeurig de speler bedienen zonder emulatie van toetsaanslagen en muisbediening. Programma's die de API gebruiken om Light Alloy te bedienen zijn bijvoorbeeld Remotty en RC Assistant.

## Besturing van Light Alloy via API

U kunt Light Alloy besturen via API door het sturen van een berichtvenster met de naam van een klasse LightAlloyFront.

Berichtnummer = WM_APP + 2504 (0x89C8)

De volgende berichten worden begrepen door Light Alloy:

LAC_FILE_OPEN = 50; // Bestand openen LAC_FILE_OPEN_URL = 51; // URL openen LAC_FILE_PLAY_DVD_DISC = 52; // Dvd/Blu-ray/Audio-cd-schijf openen LAC_FILE_OPEN_DVD_FOLDER_NO_MENU = 53; // Dvd-map openen zonder dvd-menu LAC_FILE_OPEN_DVD_FOLDER = 54; // Dvd/Blu-ray/Audio-cd-map openen LAC_FILE_OPEN_TV = 55; // Schermvullend bladeren LAC_FILE_PLAY_CDDVD = 56; // Cd/Dvd-schijf openen LAC_FILE_PLAY_BD_DISC = 57; // Blu-rayschijf openen LAC_FILE_PLAY_AUD_DISC = 58; // Audio-cd-schijf openen LAC_APPLICATION_HISTORY = 59; // Bestandsgeschiedenis LAC_FILE_INFO = 60; // Bestandsinformatie LAC_FILE_OSD_INFO = 61; // Bestandsinformatie op scherm (OSD) LAC_FILE_INFO_PLAYLIST = 62; // Bestandsinformatie (afspeellijst) LAC_FILE_OPEN_RADIOVIEWER = 63; // Internetradioverkenner LAC_FILE_RADIO_ON_OFF = 64; // Internetradio aan/uit LAC_FILE_RADIO_RECSTART = 65; // Internetradio: opname starten LAC_FILE_RADIO_RECSTOP = 66; // Internetradio: opname stoppen LAC_FILE_RADIO_REC_START_STOP = 67; // Internetradio: start/stop opname LAC_PLAYBACK_PLAY = 100; // Afspelen LAC_PLAYBACK_STOP = 101; // Stoppen LAC_PLAYBACK_STOP_PLAY = 102; // Afspelen / Pauzeren LAC_PLAYBACK_REAL_STOP = 103; // Volledig stoppen (bestand uitwerpen) LAC_PLAYBACK_SPEED_PLAY = 104; // Afspeelsnelheid wijzigen LAC_PLAYBACK_FILTERS = 105; // Filtersboom LAC_PLAYBACK_SPEED_PLAY_UP = 106; // Afspeelsnelheid verhogen LAC_PLAYBACK_SPEED_PLAY_DN = 107; // Afspeelsnelheid verlagen LAC_SEEK_FRAME_STEP = 150; // Volgend beeld LAC_SEEK_FRAME_BACK = 151; // Vorig beeld LAC_SEEK_FORWARD = 152; // Vooruitspoelen LAC_SEEK_BACKWARD = 153; // Achteruitspoelen LAC_SEEK_JUMP_FORWARD = 154; // Voorwaarts springen LAC_SEEK_JUMP_BACKWARD = 155; // Achterwaarts springen LAC_SEEK_SUBTITLE_NEXT = 156; // Volgende ondertitel LAC_SEEK_SUBTITLE_PREV = 157; // Vorige ondertitel LAC_SEEK_REWIND = 158; // Terugspoelen naar begin LAC_SEEK_SET_BOOKMARK = 159; // Bladwijzer plaatsen LAC_SEEK_LAST_POS = 160; // Afspelen vanaf laatst gespeelde positie LAC_SEEK_A_B = 161; // Herhaal A-B LAC_SEEK_SET_O = 162; // Begin van interval instellen LAC_SEEK_SET_E = 163; // Einde van interval instellen LAC_SEEK_SET_OE = 164; // Einde van voortiteling instellen LAC_SEEK_SET_EO = 165; // Begin van aftiteling instellen LAC_SEEK_SHOW_OE_PROPS = 166; // Intervalopties LAC_SEEK_INVERSION = 167; // Intervalopties normaal/omgekeerd LAC_SEEK_ENABLE_OE = 168; // Intervallen automatisch overslaan LAC_WINDOW_CONTROL_PANEL = 200; // Bedieningspaneel LAC_WINDOW_STAY_ON_TOP = 201; // Op voorgrond LAC_WINDOW_MINIMIZE = 202; // Minimaliseren LAC_WINDOW_MAXIMIZE = 203; // Maximaliseren LAC_WINDOW_FULLSCREEN = 204; // Venster / Volledig scherm LAC_WINDOW_ORIGINAL = 205; // Originele grootte LAC_WINDOW_PLAYLIST = 206; // Afspeellijst LAC_WINDOW_EX_PLAYLIST = 207; // Externe afspeellijst LAC_WINDOW_ADVDIR = 208; // Afspeellijstmodus (normaal/mappenmodus) LAC_WINDOW_PLAYLIST_SIZE = 209; // Afspeellijstgrootte (max/standaard) LAC_WINDOW_ADVDIR_DIR_SIZE = 210; // Grootte mappaneel afspeellijst (min/standaard) LAC_WINDOW_GET_USER_SIZE = 211; // Vensterpositie en -grootte opslaan LAC_WINDOW_SET_USER_SIZE = 212; // Vensterpositie en -grootte laden LAC_WINDOW_HIDE_FROM_BOSS = 213; // Speler verbergen/tonen LAC_PLAYLIST_SHOW_HIDE_SEARCH = 250; // Zoekveld tonen/verbergen LAC_PLAYLIST_ADVDIR_FAVORITE = 251; // Mappenmodus - Favorieten LAC_PLAYLIST_ADVDIR_GO_MYPATH = 252; // Mappenmodus - Favoriete map LAC_PLAYLIST_PLAY = 253; // Geselecteerd bestand afspelen LAC_PLAYLIST_NEXT = 254; // Volgende in afspeellijst LAC_PLAYLIST_PREV = 255; // Vorige in afspeellijst LAC_PLAYLIST_ADD_FILES = 256; // Bestand(en) toevoegen aan afspeellijst LAC_PLAYLIST_ADD_FOLDER = 257; // Map toevoegen aan afspeellijst LAC_PLAYLIST_DELETE = 258; // Verwijderen uit afspeellijst LAC_PLAYLIST_DELETE_FILE = 259; // Bestand(en) van schijf verwijderen LAC_PLAYLIST_CLEAR = 260; // Afspeellijst wissen LAC_PLAYLIST_SAVE = 261; // Afspeellijst opslaan LAC_PLAYLIST_REPORT = 262; // Rapport genereren LAC_PLAYLIST_MOVE_UP = 263; // Verplaats naar boven LAC_PLAYLIST_MOVE_DOWN = 264; // Verplaats naar beneden LAC_PLAYLIST_SORT = 265; // Lijst sorteren LAC_PLAYLIST_VISUALSHUFFLE = 266; // Afspeellijst in willekeurige volgorde zetten LAC_PLAYLIST_SHUFFLE = 267; // Afspelen in willekeurige volgorde LAC_PLAYLIST_REPEAT = 268; // Afspeellijst herhalen LAC_PLAYLIST_REPEAT_FILE = 269; // Bestand herhalen LAC_PLAYLIST_BOOKMARKS = 270; // Bladwijzers in afspeellijst LAC_PLAYLIST_JUMP = 271; // Spring naar bestand LAC_PLAYLIST_SEARCH_FILE = 272; // Bestandslocatie tonen LAC_PLAYLIST_RENAME_FILE = 273; // Bestand of bladwijzer hernoemen LAC_PLAYLIST_MANAGER = 274; // Afspeellijstbeheerder LAC_PLAYLIST_SKIP_FILE = 275; // Bestand overslaan LAC_PLAYLIST_SELECT_ALL = 276; // Alle bestanden selecteren LAC_VIDEO_PROPERTIES = 300; // Beeldopties LAC_VIDEO_SCREENSHOT = 301; // Schermafbeelding opslaan LAC_VIDEO_SCREENSHOT_CB = 302; // Schermafbeelding kopiëren naar klembord LAC_VIDEO_SAVE_THUMBNAILS = 303; // Bestand met collectie miniatuurafbeeldingen opslaan LAC_VIDEO_SAVE_SCREENS_PACK = 304; // Collectie schermafbeeldingen op ware grootte opslaan LAC_VIDEO_OPEN_SCR_FOLDER = 305; // Map met schermafbeeldingen openen LAC_VIDEO_SCALE_50 = 306; // Beeldzoom 50% LAC_VIDEO_SCALE_100 = 307; // Beeldzoom 100% LAC_VIDEO_SCALE_150 = 308; // Beeldzoom 150% LAC_VIDEO_SCALE_200 = 309; // Beeldzoom 200% LAC_VIDEO_RATIO_ASIS = 310; // Oorspronkelijke beeldverhouding LAC_VIDEO_RATIO_16_9 = 311; // Beeldverhouding 16:9 LAC_VIDEO_RATIO_4_3 = 312; // Beeldverhouding 4:3 LAC_VIDEO_RATIO_WIDTH = 313; // Beeldverhouding tot breedte LAC_VIDEO_RATIO_HEIGHT = 314; // Beeldverhouding tot hoogte LAC_VIDEO_RATIO_CUSTOM = 315; // Specifieke beeldverhouding LAC_VIDEO_RATIO_CUSTOM_SET = 316; // Specifieke beeldverhouding (instellen) LAC_VIDEO_RATIO_FREE = 317; // Vrije beeldverhouding LAC_VIDEO_RATIO_PIXEL = 318; // Beeldverhouding pixel-voor-pixel LAC_VIDEO_ZOOM_IN = 319; // Videobeeld inzoomen LAC_VIDEO_ZOOM_OUT = 320; // Videobeeld uitzoomen LAC_VIDEO_BRIGHTNESS_INC = 321; // Helderheid vergroten LAC_VIDEO_BRIGHTNESS_DEC = 322; // Helderheid verminderen LAC_VIDEO_CONTRAST_INC = 323; // Contrast vergroten LAC_VIDEO_CONTRAST_DEC = 324; // Contrast verminderen LAC_VIDEO_SATURATION_INC = 325; // Verzadiging vergroten LAC_VIDEO_SATURATION_DEC = 326; // Verzadiging verminderen LAC_VIDEO_COLOR_RESET = 327; // Kleurinstellingen opnieuw instellen LAC_VIDEO_SETS_RESTORE = 328; // Beeldzoom en -grootte opnieuw instellen LAC_VIDEO_RATIO_SWITCH = 329; // Andere beeldverhouding instellen LAC_VIDEO_DEBUG_OSD = 330; // Technische OSD tonen LAC_VIDEO_OSD_INFO_CB = 331; // OSD-informatieregel kopiëren naar klembord LAC_VIDEO_SUBS_DEBUG_OSD = 332; // Technische OSD tonen als ondertitel LAC_VIDEO_SHOW_STATS = 333; // Beeldverwerkerstatistieken tonen LAC_VIDEO_USE_VSYNC = 334; // VSync toestaan LAC_VIDEO_USE_ACCURVSYNC = 335; // Nauwkeurige VSync gebruiken LAC_VIDEO_USE_ALTERVSYNC = 336; // Alternatieve VSync gebruiken LAC_VIDEO_FLUSHGPU_BEF_VS = 337; // GPU legen vóór VSync LAC_VIDEO_FLUSHGPU_AFT_PR = 338; // GPU legen vóór presentatie LAC_VIDEO_FLUSHGPU_WAIT = 339; // Wacht tot GPU leeg is LAC_VIDEO_USE_FRAME_TC = 340; // Beeldtijdcorrectie inschakelen LAC_VIDEO_DIS_AERO = 341; // Bureaubladeffecten (Aero) uitschakelen LAC_VIDEO_USE_16_235_OR = 342; // Uitvoerbereik 16-235 gebruiken LAC_VIDEO_PAN_SCAN_LEFT = 343; // Beeld naar links verplaaten LAC_VIDEO_PAN_SCAN_RIGHT = 344; // Beeld naar rechts verplaaten LAC_VIDEO_PAN_SCAN_UP = 345; // Beeld omhoog verplaatsen LAC_VIDEO_PAN_SCAN_DOWN = 346; // Beeld omlaag verplaatsen LAC_SUBTITLES_LOAD = 350; // Ondertitels laden LAC_SUBTITLES_LOAD_TV = 351; // Ondertitelbladeraar LAC_SUBTITLES_SHOW = 352; // Ondertiteling #1 aan LAC_SUBTITLES_SWITCH = 353; // Ondertitel #1 wisselen LAC_SUBTITLES_SHOW2 = 354; // Ondertiteling #2 aan LAC_SUBTITLES_SWITCH2 = 355; // Ondertitel #2 wisselen LAC_SUBTITLES_PROPERTIES = 356; // Ondertitelingsopties LAC_SUBTITLES_TS_INC = 357; // Ondertitels vertragen LAC_SUBTITLES_TS_DEC = 358; // Ondertitels versnellen LAC_SUBTITLES_FONT_INC = 359; // Ondertitels vergroten LAC_SUBTITLES_FONT_DEC = 360; // Ondertitels verkleinen LAC_SUBTITLES_COPY_CB = 361; // Huidige regel naar klembord kopiëren LAC_SOUND_ADD = 400; // Aanvullend geluidsbestand laden LAC_SOUND_SWITCH_STREAM = 401; // Audiospoor wisselen LAC_SOUND_PROPERTIES = 402; // Geluidsopties LAC_SOUND_VOLUME_INC = 403; // Volume verhogen LAC_SOUND_VOLUME_DEC = 404; // Volume verlagen LAC_SOUND_MUTE = 405; // Geluid dempen LAC_SOUND_TS_MINUS = 406; // Geluid voorwaarts verschuiven LAC_SOUND_TS_PLUS = 407; // Geluid achterwaarts verschuiven LAC_SOUND_PITCH_INC = 408; // Toonhoogte verhogen LAC_SOUND_PITCH_DEC = 409; // Toonhoogte verlagen LAC_SOUND_PITCH_DEF_ONE = 410; // Standaard toonhoogte voor huidige afspeelsnelheid LAC_SOUND_PITCH_DEF_ALL = 411; // Standaard toonhoogte voor alle afspeelsnelheden LAC_APPLICATION_PREFERENCES = 450; // Instellingen LAC_APPLICATION_HELP = 451; // Help LAC_APPLICATION_ABOUT = 452; // Over Light Alloy LAC_APPLICATION_EXIT = 453; // Afsluiten LAC_APPLICATION_MONITOR_OFF = 454; // Monitor uitschakelen LAC_APPLICATION_POWER_OFF = 455; // Computer uitschakelen LAC_APPLICATION_POW_ONPLDONE = 456; // Computer uitschakelen als afspeellijst is afgelopen LAC_APPLICATION_HIBERNATE = 457; // Hibernate/sluimerstand LAC_APPLICATION_HIB_ONPLDONE = 458; // Slaapstand als afspeellijst is afgelopen LAC_APPLICATION_MEDIAHISTORY_CLEAR = 459; // Lijst met laatst geopende bestanden wissen LAC_APPLICATION_CLEAR_MEDIA_SETTINGS = 460; // Mediavoorkeuren en cache wissen LAC_APPLICATION_WL_KEYS_REMINDER = 461; // Toegewezen WinLIRC-toetsen onthouden LAC_APPLICATION_SCHEDULER = 462; // Taakplanner LAC_APPLICATION_SLEEP = 463; // Slaapstand LAC_APPLICATION_AGENT_CLOSE = 464; // LAAgent.exe beëindigen LAC_NAVIGATION_TITLE = 500; // Titelmenu LAC_NAVIGATION_ROOT = 501; // Hoofdmenu LAC_NAVIGATION_SUBS = 502; // Ondertitelmenu LAC_NAVIGATION_AUDIO = 503; // Audiomenu LAC_NAVIGATION_ANGLE = 504; // Camerahoekmenu LAC_NAVIGATION_SCENES = 505; // Scènemenu LAC_NAVIGATION_PREV = 506; // Vorig hoofdstuk LAC_NAVIGATION_NEXT = 507; // Volgend hoofdstuk

## Toepassingsmogelijkheden Light Alloy-API

Hieronder zijn twee AutoIt3-scripts die hetzelfde werken. Het enige verschil is dat het eerste script iets minder ruimte in beslag neemt en dat het tweede iets duidelijker is:

#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)