In afwachting van mijn usb-infraroodzender, ben ik alvast begonnen met het schrijven van een programma om de zender aan te sturen. In bepaalde opzichten simpeler dan ik dacht, aan de andere kant onverwachte complicaties.
Om de ir zender iets te laten doen moet je commando intikken zoals bijvoorbeeld "irsend SEND_ONCE rm-d29m KEY_POWER". Dat is wel heel veel werk. Vooral omdat ik deze contraptie heb bedacht om er makkelijk titels mee te kunnen intikken op mijn minidiscs.
de usb-infraroodzender
De oplossing is simpel: maak een programmatje die al die vervelende commandos voor je intikt. UNIX is ontworpen voor dit soort rare wensen. En zoals zo vaak met UNIX zijn er vele oplossingen mogelijk. Ik koos voor een simpel programmatje in bash. Maar zelfs dat simpele programmatje stelde me toch nog voor problemen. Aanvankelijk wilde ik gebruik maken van de functietoetsen en zelfs return en spatie omleiden. Niet onmogelijk, maar wel in mijn opzet.
Ik maak gebruik van een loop die steeds in gang wordt gezet na het intikken van een toets. Normaal gesproken genereert een toets ook een enkel karakter, maar dat geldt niet voor toetsen als enter, pijltje, home, end, F1, enzovoorts. Dus ik had behoefte aan een list.
![]() |
| title of the album to play on the minidisc deck |
Dus ik bedacht dat de hoofdletters gereserveerd zijn voor commando's aan het deck, terwijl alle andere toetsen beschikbaar zijn voor de edit functie. Dit kost mij wel de hoofdletters. Maar omdat ik hou van hoofdletters heb ik dat omgedraaid. Bovendien, er staan hoofdletters op het toetsenbord, meestal.
Het draait allemaal om eén commando aan het deck. Ben ik een title aan het editen of niet. Het lijkt een beetje op VI of emacs. En soms zijn commandos in beide modes beschikbaar, maar betekenen ze iets anders.
Voorbeeld:
In normal mode is nextTrack wat het is, in Edit Mode is het nextCharacter.
![]() |
| code snippet |
Wordt vervolgd



Reacties