diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 000000000..54724cb87 --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,35 @@ +name: Build and deploy material mkdocs to gh-pages +on: + push: + branches: + - dev + workflow_dispatch: +jobs: + check_gradle_files_change: + name: "Check docs files changed" + runs-on: ubuntu-latest + outputs: + DOCS_FILES_CHANGED: ${{ steps.docs_changed.outputs.any_changed }} + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + with: + submodules: 'recursive' + - name: Check that docs changed + id: docs_changed + uses: tj-actions/changed-files@40853de9f8ce2d6cfdc73c1b96f14e22ba44aec4 # v45.0.0 + with: + files: | + docs/** + mkdocs.yml + deploy: + needs: [ check_gradle_files_change ] + if: ${{ needs.check_gradle_files_change.DOCS_FILES_CHANGED }} == true + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - run: pip install mkdocs-material + - run: pip install mkdocs-minify-plugin + - run: mkdocs gh-deploy --force \ No newline at end of file diff --git a/README.md b/README.md index bb9f1565b..65cc879dc 100644 --- a/README.md +++ b/README.md @@ -25,3 +25,13 @@ database ├── Toys └── TVs ``` + +## Run mkdocs locally + +Run docker compose + +```bash +docker compose up +``` + +Open in browser `http://0.0.0.0:80000` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..09546c033 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +services: + mkdocs: + image: squidfunk/mkdocs-material:latest + ports: + - 8000:8000 + volumes: + - ./:/docs:ro diff --git a/docs/adding_remote.md b/docs/adding_remote.md new file mode 100644 index 000000000..771f34b8b --- /dev/null +++ b/docs/adding_remote.md @@ -0,0 +1,126 @@ +### Requirements + +To add remote you will need two things: + +- Flipper Zero +- Understanding of json format + +### Creating IR file + +Let's imagine, you want to add new file. + +Firstly, you'll need to create `Infrared Remote` with your `Flipper` tool. + +Next, you'll need to download this remote via link or export + +

+ drawing +

+ +### Creating configurations + +Configuration are required to handle device key mapping. +You can see this links to see more about [avaliaable buttons](./avaliable_buttons.md) +or [button aliases](./button_names.md). + +Let's create our configuration by example. + +We have `Dell_p7524qt.ir` file, which contains some set of ir keys. + +``` +Filetype: IR signals file +Version: 1 +# +name: Power +type: parsed +protocol: NEC +address: 42 00 00 00 +command: 01 00 00 00 +# +name: Ok +type: parsed +protocol: NEC +address: 42 00 00 00 +command: 0D 00 00 00 +# +name: Menu +type: parsed +protocol: NEC +address: 42 00 00 00 +command: 54 00 00 00 +# +name: Back +type: parsed +protocol: NEC +address: 42 00 00 00 +command: 6D 00 00 00 +``` + +The names of keys seems like understandable, but we need to map it into +our [avaliaable buttons](./avaliable_buttons.md). + +So let's create `config.json` by reference on [button aliases](./button_names.md). + +```json +{ + "key_map": { + "PWR": { + "type": "NAME", + "key_name": "Power" + }, + "OK": { + "type": "NAME", + "key_name": "Ok" + }, + "MENU": { + "type": "NAME", + "key_name": "Menu" + }, + "EXIT": { + "type": "NAME", + "key_name": "Back" + } + } +} +``` + +In this `config.json` we mapped our set of keys: + +- `PWR` -> "Power" +- `OK` -> "Ok" +- `MENU` -> "Menu" +- `EXIT` -> "Back" + +And now we are ready to create **Pull Request** + +### Creating PullRequest + +Clone the repository using git clone command + +```bash +git clone https://github.com/flipperdevices/IRDB.git +``` + +Open `/database/categories` and lookup for your device category - TV, DVD etc. + +In each category there's dozens of brands. Lookup for you brand provider - Samsung, Xiamoi etc. + +Current path should be, for example, `/database/categories/TVs/Samsung` if your device is `TV` and brand is `Samsung`. + +Next, you'll need to know the model of your device. +Let's imagine it `Samsung UE48JU6670`. +You see there's no yet the model like that. So you need to create a new folder *without +spaces* `/database/categories/TVs/Samsung/Samsung_UE48JU6670`. + +If there's already device model like that - you can modify `.ir` file and `config.json`. Or create entire new folder(not +recommended) with custom postfix `_2`. + +Now you need to move your downloaded `.ir` file and `config.json`: + +- `/database/categories/TVs/Samsung/Samsung_UE48JU6670/Samsung_UE48JU6670.ir` +- `/database/categories/TVs/Samsung/Samsung_UE48JU6670/config.json` + +Next, create new branch, push your changes and [create Pull Request](https://github.com/flipperdevices/IRDB/compare) +just [like here](https://github.com/flipperdevices/IRDB/pull/7) + +Finally, see the green CI and wait for us to reply and merge! \ No newline at end of file diff --git a/docs/avaliable_buttons.md b/docs/avaliable_buttons.md new file mode 100644 index 000000000..139de70fe --- /dev/null +++ b/docs/avaliable_buttons.md @@ -0,0 +1,70 @@ +Here you can see all buttons we currently have + +See also avaliable [button aliases](button_names.md) + +- `PWR` -> Power enable button +- `SHUTTER` -> Take a photo with camera +- `VOL_UP` -> Increase volume +- `VOL_DOWN` -> Decrease volume +- `CH_UP` -> Next channel +- `CH_DOWN` -> Previous channel +- `FOCUS_MORE` -> Add focus +- `FOCUS_LESS` -> Decrease focus +- `ZOOM_UP` -> Zoom up +- `ZOOM_DOWN` -> Zoom down +- `RESET` -> Reset +- `DOWN` -> Navigation button(for TV menu, for example) - down +- `UP` -> Navigation button(for TV menu, for example) - up +- `RIGHT` -> Navigation button(for TV menu, for example) - right +- `LEFT` -> Navigation button(for TV menu, for example) - left +- `NEXT` -> Next button for TV box +- `PREVIOUS` -> Previous button for TV box +- `TV` -> TV button fot TVs +- `AUX` -> Change AUX mode +- `HOME` -> Home button +- `BACK` -> Back button +- `MENU` -> Show/Open menu +- `PLAY` -> Play/Resume playback +- `MUTE` -> Mute sound +- `EJECT` -> Eject disk +- `FAN_SPEED` -> Change fan speed recursively +- `NEAR` -> Near camera clipping plane +- `FAR` -> Far camera clipping plane +- `PAUSE` -> Pause playback +- `RECORD` -> Start recording +- `WIND_SPEED` -> Change wind speed recursively +- `MODE` -> Change mode (TV Box, DVD) +- `LIGHT` -> Increase/Decrease light recursively +- `FAN_MEDIUM` -> Set fan speed to medium +- `FAN_HIGH` -> Set fan mode to high +- `FAN_LOW` -> Change fan speed to low +- `STOP` -> Stop button (mostly for TV Box) +- `EXIT` -> Exit(from menu, etc) +- `INFO` -> Show info +- `TIMER` -> Start timer, show timer menu +- `OSCILLATE` -> Start oscillating (mostly for fans) +- `TIMER_ADD` -> Increase timer value +- `TIMER_REDUCE` -> Decrease timer value +- `FAN_SPEED_UP` -> Increase fan speed +- `FAN_SPEED_DOWN` -> Decrease fan speed +- `SLEEP` -> Start sleep mode +- `SHAKE_WIND` -> Same as oscillate, start shaking +- `SWING` -> Same as oscillate, start swing +- `OFF` -> Turn off the device +- `BRIGHTNESS_UP` -> Increase brightness +- `BRIGHTNESS_DOWN` -> Decrease brightness +- `COLD_WIND` -> Set wind cold +- `COOL` -> Set/increase cool +- `WIND_TYPE` -> Change wind type +- `TEMPERATURE_UP` -> Increase temperature +- `TEMPERATURE_DOWN` -> Decrease temperature +- `HEAT_ADD` -> Add heat +- `HEAT_REDUCE` -> Reduce heat +- `ENERGY_SAVE` -> Enter energy save mode +- `OK` -> Ok button(mostly where up/left/right/down buttons located +- `REW` -> Rewind button(mostly for playback) +- `SET` -> Set button(mostly for TV box) +- `DELETE` -> Delete button(mostly for TV Box) +- `VOD` -> Enable VODs +- `LIVE_TV` -> Set TV mode +- `FAVORITE` -> Add to favorite \ No newline at end of file diff --git a/docs/button_names.md b/docs/button_names.md new file mode 100644 index 000000000..9048e98b0 --- /dev/null +++ b/docs/button_names.md @@ -0,0 +1,414 @@ +Here you can see list of button aliases + +### What is button alias? + +The database of infrared files has a ton of different buttons. +Every author of infrared file has a different definition of naming. +Thus, the names of buttons are different. + +This list of aliases defines the finite set of button names, which can be used with IRDB. + +Please, use only aliases from this list for every [avaliable button](./avaliable_buttons.md) + +If you don't see here button or alias you need, contact us +via [new issue](https://github.com/flipperdevices/IRDB/issues/new). + +### The list of button aliases + +#### PWR + +- power +- pwr +- pwron +- power +- power_r +- on +- on_off +- on/off +- power_on +- power on +- powertoggle + +#### SHUTTER + +- shutter +- trigger +- photo +- picture + +#### VOL_UP + +- vol+ +- vol+_r +- volup +- vol_up +- volu +- volume_up +- volume up +- amp vol- +- cent_volume_up +- ch_vol+ +- master volume+ +- mastervol- + +#### VOL_DOWN + +- vol- +- vol-_r +- voldown +- voldwn +- vol_dn +- vold +- volume_down +- volume down +- vol_donw +- vol_dwn +- amp vol- +- cent_volume_down +- ch_vol- +- master volume- +- mastervol- +- vol_down + +#### CH_UP + +- ch+ +- ch+_r +- ch_next +- chn_up +- chann_up +- chan up +- up/ch+ +- tv_ch+ + +#### CH_DOWN + +- ch- +- ch-_r +- ch_prev +- chn_down +- chann_down +- chan down +- tv_ch- + +#### FOCUS_MORE + +- focus- +- focus_dwn +- focusing- + +#### FOCUS_LESS + +- focus+ +- focus_up +- focusing+ + +#### ZOOM_UP + +- zoom+ +- ezoom+ +- zoom_up +- digital zoom+ +- zoom_in +- ezoom_in +- zoomin + +#### ZOOM_DOWN + +- zoom- +- ezoom- +- zoom_down +- digital zoom- +- zoom out +- zoom_out +- ezoom_out + +#### RESET + +- reset + +#### DOWN + +- down +- down_r + +#### UP + +- up +- up_r + +#### RIGHT + +- right +- right_r + +#### LEFT + +- left +- left_r + +#### NEXT + +- next +- next_r + +#### PREVIOUS + +- previous +- previous_r + +#### TV + +- tv +- tv_av +- tv_r +- tvp3 +- livetv +- hd tv + +#### AUX + +- aux +- aux_r +- input aux +- input aux_r + +#### HOME + +- home +- home_r + +#### BACK + +- back +- back_r + +#### MENU + +- menu +- menu_r +- pop-up menu +- shortcut menu + +#### PLAY + +- play +- play_r + +#### MUTE + +- mute +- mute_r + +#### EJECT + +- eject + +#### FAN_SPEED + +- fanspeed +- fan_speed +- speed + +#### NEAR + +- near +- p_near + +#### FAR + +- far + +#### PAUSE + +- pause + +#### RECORD + +- record + +#### WIND_SPEED + +- wind_speed +- strength + +#### MODE + +- mode +- mode_r + +#### LIGHT + +- light + +#### FAN_MEDIUM + +- medium + +#### FAN_HIGH + +- high + +#### FAN_LOW + +- low + +#### STOP + +- stop +- stop_r + +#### EXIT + +- exit + +#### INFO + +- info + +#### TIMER + +- timer + +#### OSCILLATE + +- oscillate +- osc +- oscillation +- oscilate +- oscil + +#### TIMER_ADD + +- timer+ + +#### TIMER_REDUCE + +- timer- + +#### FAN_SPEED_UP + +- fanspeed+ +- fan+ +- fan + +- fan_up +- speed_up + +#### FAN_SPEED_DOWN + +- fanspeed- +- fan- +- fan - +- fan_dn +- speed_down + +#### SLEEP + +- sleep + +#### SHAKE_WIND + +- shake_wind + +#### SWING + +- swing + +#### OFF + +- off +- power_off +- power off +- poweroff +- pwroff + +#### BRIGHTNESS_UP + +- +brightness +- bright_up +- brightness up +- brightness_up + +#### BRIGHTNESS_DOWN + +- -brightness +- brightness_down +- brightness_dn +- bright_down + +#### COLD_WIND + +- cold wind + +#### COOL + +- cool + +#### WIND_TYPE + +- wind_type + +#### TEMPERATURE_UP + +- temperature_up +- temp+ + +#### TEMPERATURE_DOWN + +- temperature_down +- temp- + +#### HEAT_ADD + +- heat+ +- heat_hi +- heat_up + +#### HEAT_REDUCE + +- heat_down +- heat- +- heat_lo + +#### ENERGY_SAVE + +- energy save +- energy save_r + +#### OK + +- ok +- enter +- center +- apply +- sure + +#### REW + +- rew + +#### SET + +- set + +#### DELETE + +- del +- delete + +#### VOD + +- vod + +#### LIVE_TV + +- live tv +- live tv_r +- livetv +- tv +- letv + +#### FAVORITE + +- favorites +- favorite \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..086bd4734 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,3 @@ +Welcome to Flipper IRDB wiki + +Please, navigate with categories to view information you need \ No newline at end of file diff --git a/docs/media/favicon.png b/docs/media/favicon.png new file mode 100644 index 000000000..f21fa4560 Binary files /dev/null and b/docs/media/favicon.png differ diff --git a/docs/media/share_remote.jpg b/docs/media/share_remote.jpg new file mode 100644 index 000000000..1d119d7b7 Binary files /dev/null and b/docs/media/share_remote.jpg differ diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..38a72100f --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,148 @@ +site_name: IRDB docs +site_url: https://flipperzero.one/ +site_author: flipperdevices +site_description: >- + IRDB docs + +# Repository +repo_name: flipperdevices/IRDB +repo_url: https://github.com/flipperdevices/IRDB/ + +# Copyright +copyright: Copyright © 2024 - 2024 Flipper Devices + + +# Configuration +theme: + name: 'material' + # Don't include MkDocs' JavaScript + include_search_page: false + search_index_only: true + + # Default values, taken from mkdocs_theme.yml + language: en + features: + - navigation.tabs + # - navigation.expand + - announce.dismiss + - content.action.edit + - content.action.view + - content.code.annotate + - content.code.copy + # - content.code.select + # - content.footnote.tooltips + # - content.tabs.link + - content.tooltips + # - header.autohide + # - navigation.expand + - navigation.footer + - navigation.indexes + # - navigation.instant + # - navigation.instant.prefetch + # - navigation.instant.progress + # - navigation.prune + - navigation.sections + - navigation.tabs + # - navigation.tabs.sticky + - navigation.top + - navigation.tracking + - search.highlight + - search.share + - search.suggest + - toc.follow + # - toc.integrate + palette: + - scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + primary: orange + accent: pink + - scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + primary: orange + accent: pink + font: + text: Roboto + code: Roboto Mono + favicon: /media/favicon.png + logo: /media/favicon.png + icon: + logo: logo + +# Plugins +plugins: + - search: + separator: '[\s\u200b\-_,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])' + - minify: + minify_html: true + +# Customization +extra: + social: + - icon: fontawesome/brands/github + link: https://github.com/flipperdevices + - icon: fontawesome/brands/telegram + link: https://t.me/flipperzero + - icon: fontawesome/brands/discord + link: https://discord.gg/flipper + +# Extensions +markdown_extensions: + - abbr + - admonition + - attr_list + - def_list + - footnotes + - md_in_html + - toc: + permalink: true + - pymdownx.arithmatex: + generic: true + - pymdownx.betterem: + smart_enable: all + - pymdownx.caret + - pymdownx.details + - pymdownx.emoji: + emoji_generator: !!python/name:material.extensions.emoji.to_svg + emoji_index: !!python/name:material.extensions.emoji.twemoji + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.keys + - pymdownx.magiclink: + normalize_issue_symbols: true + repo_url_shorthand: true + user: squidfunk + repo: mkdocs-material + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.snippets: + auto_append: + - includes/mkdocs.md + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true + combine_header_slug: true + slugify: !!python/object/apply:pymdownx.slugs.slugify + kwds: + case: lower + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde + +# Page tree +nav: + - "IRDB Docs": + - "Home": 'index.md' + - "Avaliable Buttons": 'avaliable_buttons.md' + - "Button Aliases": 'button_names.md' + - "Add remote": 'adding_remote.md' \ No newline at end of file