profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/mayanez/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Miguel A. Arroyo mayanez California https://miguel.arroyo.me Research interests in systems security, compilers, computer architecture, and cyber-physical systems.

mayanez/flight_scraper 80

Flight Fare & Seat Availability Scraper Library

mayanez/dumang-keyboard-ctrl 23

Open Source Control Layer for DuMang Keyboards

mayanez/CrunchyPlus 1

A media enhancer and anime discovery extension for Chrome, that enhances the anime experience on crunchyroll.com

mayanez/dsplit 1

Split a directory into sized directories. Source is left untouched, and # hardlinks are created in the destination.

mayanez/emacs-paper 1

PDF Workflow Tool w/ Mendeley integration

certuna/navidrome 0

🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic

jon-weisz/mpl_record 0

Building a database-like infrastructure out of boost::mpl and boost::fusion for transactional storage in a datagraph processing scheme.

mayanez/ardupilot 0

APM Plane, APM Copter, APM Rover source

startedyichengchen/clashX

started time in 3 days

push eventmayanez/dumang-keyboard-ctrl

YAMAMOTO Takashi

commit sha f30e1ff5a80b643f99557be464063f30d442c1e8

Treat xx in key_xx as a hex to match the dump

view details

YAMAMOTO Takashi

commit sha 13a7cf2b1fc5ed5ecb2588deafb8bc9965927f5a

use yaml.safe_load yaml.load with the default setting is deprecated

view details

YAMAMOTO Takashi

commit sha fbf83f626ea0a2a683ad44f35226667c28fa3ece

tweak a way to skip non existent keys

view details

YAMAMOTO Takashi

commit sha 6510429368837fba5c6432accd84baf7b732fdc1

print raw numbers for unknown keycodes

view details

YAMAMOTO Takashi

commit sha 369d9d6015985e4ecee1317df96251b90f1c7e9e

Keycode: Add TRANSPARENT and DISABLED

view details

YAMAMOTO Takashi

commit sha d37755eec2641cb0f87191912070ba562a069018

KeyConfigurePacket.encode: specify the correct key

view details

YAMAMOTO Takashi

commit sha 170cf0be9bbb66a769d91cae8c57e1496b0994ae

DuMangBoard.kill_threads: Stop the receiver thread as well

view details

YAMAMOTO Takashi

commit sha e56978c27b02cd4e57a075a7f6e0b2d1bbb53c0b

dumang-config config: Fix a race drain send_q by killing and waiting threads.

view details

YAMAMOTO Takashi

commit sha 499e0ebb5b6cfe938e807ed9ed516696043ea782

Keycode: Add MACRO

view details

YAMAMOTO Takashi

commit sha ce44e7223e94e28ad2dcb1b06654a0428f2c3ffa

Tear down threads gracefully for dump subcommand as well

view details

YAMAMOTO Takashi

commit sha 7bf0a2c0ea902a99a4044c262922bfe70c6889fa

Implement macro dump

view details

YAMAMOTO Takashi

commit sha 919c84791ac33885b702287b799c1986b57f9cdb

Implement macro config

view details

YAMAMOTO Takashi

commit sha c9abb5945b802fc597e5effff545dcb475283a8a

DuMangBoard: fix invalid handle detection for my env This makes sync daemon survive on device reconnects

view details

YAMAMOTO Takashi

commit sha 7ffd9976dfae8205069a4c733a1da31e5440b4d3

config.yml: add a macro example

view details

Miguel A. Arroyo

commit sha 206a6b0fdcf901fc76f9569d2fa13fd6309e6869

Merge pull request #6 from yamt/fix-and-macro Misc fixes + minimum macro support

view details

push time in 3 days

delete branch mayanez/navidrome

delete branch : metadata-enhancements/audio-channels

delete time in 3 days

push eventcertuna/navidrome

Miguel A. Arroyo

commit sha 32d822d40862e0a3e6de6bbe005e1f9884282940

Add MusicBrainz Work ID

view details

push time in 6 days

fork mayanez/FFmpeg

Mirror of https://git.ffmpeg.org/ffmpeg.git

https://ffmpeg.org/

fork in 12 days

startedEuFlo/sacd-ripper

started time in 12 days

pull request commentnavidrome/navidrome

feat: Adds Audio Channel Metadata - #1036

Actually I just tried the ffmpeg extractor, and it is not able to get channels from some files (M4A and OGG). Here are some samples:

01-01 The Hollow.ogg.zip 02 I Get Around.m4a.zip

Looks like it's possible to have a language in the stream. I've updated the regex to account for it and added appropriate test cases.

mayanez

comment created time in 13 days

push eventmayanez/navidrome

Miguel A. Arroyo

commit sha 4f2062a674cc0cdf4d81c71764336b2c6c45c6f4

feat: Adds Audio Channel Metadata - #1036

view details

push time in 13 days

push eventmayanez/navidrome

Miguel A. Arroyo

commit sha baf14b8dc4eb980de17373738675ccf2179e1637

feat: Adds Audio Channel Metadata - #1036

view details

push time in 13 days

startedultrasonic/ultrasonic

started time in 14 days

startedenricocid/Music-Player-GO

started time in 15 days

startedm3sv/PlainUPnP

started time in 15 days

issue commentmayanez/dumang-keyboard-ctrl

Win version possible?

You should be able to use that library, but not sure if there's a need. As I mentioned above, I think the answer lies in using the native win32 apis. It shouldn't be too bad, but unfortunately I don't have the time right now to be messing with Windows.

Re: the macro limitations I know there are some, but I don't think there's much we can do about them as they are inherent to the underlying firmware. We'd have to talk with DuMang about them. Short of rewriting the firmware I'm not sure there's much we can do in the meantime. If you'd like more advanced functionality with respect to macros I suggest using something like https://www.autohotkey.com/ if you're running Windows.

cobblepot1

comment created time in 19 days

Pull request review commentmayanez/dumang-keyboard-ctrl

Misc fixes + minimum macro support

 def __init__(self, key, layer_keycodes):         self.layer_keycodes = {k: v.encode() if isinstance(v, Keycode) else v for k, v in layer_keycodes.items()}      def encode(self):-        return [self.cmd, 0x01, self.layer_keycodes[1], self.layer_keycodes[2], self.layer_keycodes[3], 0xFF, self.layer_keycodes[0]]+        return [self.cmd, self.key.encode() + 1, self.layer_keycodes[1], self.layer_keycodes[2], self.layer_keycodes[3], 0xFF, self.layer_keycodes[0]]

Can you elaborate on this a bit? What's this byte actually for? I wasn't able to decipher it the first time around. Also why the + 1?

yamt

comment created time in 19 days

Pull request review commentmayanez/dumang-keyboard-ctrl

Misc fixes + minimum macro support

 def configured_key(self, k):     @property     def configured_keys(self):         if not self._keys_initialized:+            pending = 0             for k in range(MAX_KEYS):                 self.put(KeyReportRequestPacket(k))--            while True:-                # NOTE: Wait for all requests to be sent out and the recv queue to be populated.-                if self.send_q.empty():-                    while not self.recv_q.empty():-                        p = self.recv_q.get()-                        if isinstance(p, KeyReportResponsePacket):-                            for l, kc in p.layer_keycodes.items():-                                if kc.keystr is not UNKNOWN_KEYCODE_STR:-                                    # NOTE: We add the layer_keycodes to the DKM-                                    p.key.layer_keycodes = p.layer_keycodes-                                    self._configured_keys[p.key.key] = DuMangKeyModule(p.key, p.layer_keycodes)-                    self._keys_initialized = True-                    break+                pending += 1++            while pending > 0:+                p = self.recv_q.get()+                if isinstance(p, KeyReportResponsePacket):+                    pending -= 1+                    if any([kc.keycode != 0 for kc in p.layer_keycodes.values()]):+                        # NOTE: We add the layer_keycodes to the DKM+                        p.key.layer_keycodes = p.layer_keycodes+                        self._configured_keys[p.key.key] = DuMangKeyModule(p.key, p.layer_keycodes)+                    if any([kc.keycode == Keycode.MACRO for kc in p.layer_keycodes.values()]):+                        self.put(MacroReportRequestPacket(p.key, 0))+                        pending += 1+                if isinstance(p, MacroReportResponsePacket):+                    pending -= 1+                    if p.type.type not in [0, 0xff]:

Which type is this referring to? Just trying to get some understanding on the 0 to 0xff.

yamt

comment created time in 19 days

PullRequestReviewEvent
PullRequestReviewEvent

startedMusicPlayerDaemon/MPD

started time in 19 days

startedflyte/upnpclient

started time in 21 days

startedopacam/Cohen3

started time in 21 days

PR opened gerbera/gerbera

Add Composer Tag to Metacontent Handler

Added the %composer% pattern for resources. Should be useful for others looking to add composer artwork to their browsing experience.

+2 -0

0 comment

2 changed files

pr created time in 21 days

push eventmayanez/gerbera

Miguel A. Arroyo

commit sha f2f59222aedf290b7e9a980db52f2cb449707907

Add Composer Tag to Metacontent Handler

view details

push time in 21 days

create barnchmayanez/gerbera

branch : composer-tag

created branch time in 21 days

fork mayanez/gerbera

UPnP Media Server for 2021: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices 📱💻📺

https://gerbera.io

fork in 21 days

startedv2rayA/v2rayA

started time in 22 days

startedjcorporation/myMPD

started time in a month

startedmikebrady/shairport-sync

started time in a month

startedLordNoteworthy/al-khaser

started time in a month

startedbeetbox/aura

started time in a month