Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
rdefeo authored Mar 9, 2024
1 parent 09291fe commit 8c712cf
Showing 1 changed file with 40 additions and 20 deletions.
60 changes: 40 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


# <img src="quac.png" alt="logo" width="30" style="image-rendering: pixelated;"/> Quac! Remote
## QUick ACtion Remote Control for Flipperzero
This app allows you to organize previously recorded signals, of any type*, so that you can quickly and easily play them back. No more needing to recall whether that door is Sub-GHz or RFID! Just navigate to that action in **Quac** and press OK to send!
Expand All @@ -10,15 +8,22 @@ The app does not provide any recording functionality - you must use the existing
* Only Sub-Ghz (.sub) and RFID (.rfid) files are supported at this time, IR is coming soon!
```

## Features
* Playback of rfid, sub-ghz, (and soon IR) signals
* [Easy navigation](README.md#navigation--controls)
* [Flexible signal organization](README.md#signal-organization) - utilizing the SDcard filesystem
* Playlist support
* Hidden file/folder support

## Screenshots
<table align="center">
<tr>
<td align="center">Main View</td>
<td align="center">"Work" Actions</td>
</tr>
<tr>
<td><img src="screenshots/screenshot_1.png"/></td>
<td><img src="screenshots/screenshot_2.png"/></td>
<td><img src="screenshots/screenshot_1.png" width="100px"/></td>
<td><img src="screenshots/screenshot_2.png" width="100px"/></td>
</tr>
</table>

Expand All @@ -28,37 +33,52 @@ The app does not provide any recording functionality - you must use the existing
- Pressing `Back` will take you up one folder
- Pressing `Up` and `Down` will, you know, select things up and down...

## File System Layout
The key to organizing your Quac interface is to organize your `/ext/apps_data/quac` folder structure. Every individual file is assigned a button, and every folder/directory is a "group". Selecting a group will show you the contents of that folder/directory, whether they are individual files or more folders. There is no limit on the number of actions or folders - nest as deep as you want!
## Signal Organization
The key to organizing your Quac interface is to organize your `/ext/apps_data/quac` folder structure. The UI is derived directly from the filesystem structure. Every individual file/signal is assigned a button. This is an "action". And every folder/directory is a logical group of more files/folders. Selecting a group in the UI will show you the contents of that folder. There is no limit on the number of actions or folders - nest as deep as you want!

You can organize your files by device type, or by function. For example, you may have a folder of "TV" actions, which correspond to Channel Up, Channel Down, Volume Up, Volume Down, etc. Or you may have a "Work Access" folder, which contains files/actions that correspond to Parking Gate, Garage Door, Lobby Entrance.

The files in a folder can be of mixed types. This is Quac's main strength! So continuing with the "Work Access" example, the Parking Gate can be Sub-Ghz and the Garage Door can be RFID.

## Sorting and Naming
The list view is based on the sorted file and folder order. This is enforced by sorting the actual filenames. When there are cases where you need to enforce a sorted order, you can prepend the file and folder names with `XX_` where `X` is a digit between 0-9. This will let you place an action called `On` before `Off`, even though when sorted alphabeticaly, `Off` would come before `On`. Therefore, you would name your files `00_On.rfid` and `01_Off.rfid` - assuming these are RFID saved signals.
The files in a folder can be of mixed types. **This is Quac's main strength!** So continuing with the "Work Access" example, the Parking Gate can be Sub-Ghz and the Garage Door can be RFID.

Here's an example file layout for the screenshots above:
```
/ext/apps_data/quac
/00_Work
-00_Parking_Gate.sub
-01_Garage_Door.rfid
-02_Office.rfid
-01_Front_Door.rfid
00_ParkingGate.sub
01_Garage_door.rfid
02_Office.rfid
01_Front_Door.rfid
/02_Home_Theater
-00_Power_On.ir
-01_Power_Off.ir
00_Power_On.ir
01_Power_Off.ir
```

When the action files and folders are rendered for display, any `XX_` prefix will be stripped. All underscores will be replaced with spaces. Extensions will be stripped. Casing is preserved.
## Playlists
You can chain multiple signal playback actions together by creating a playlist. Simply create a text file which contains a list of paths to the signals you wish to transmit - they will be played sequentially. Playlist names show up as clickable button, like all other individual signals/actions. Playlist files feature the following:
* Comments: lines that start with a `#` are ignored
* `pause <ms>` on a line will pause the playback by the specified millisecond duration
* Signal file names can be fully specified or local to the current directory

Errors found in the playlist will halt playback and vibrate the F0. Blank lines are ignored.

Here's an example playlist called `/ext/apps_data/quac/arrive_home.qpl`:
```
# Home arrival playlist
.exterior_light_on.sub
.side_door_unlock.sub
pause 2500
/ext/apps_data/quac/03_Stereo/00_On.sub
/ext/apps_data/quac/06_Lights/Disco_Ball.sub
```
The first two `.sub` files live in the `/ext/apps_data/quac` folder, which is where `arrive_home.qpl` is located, and will not show up in any UI screen since they are hidden (start with a `.`). Next, we pause the playlist for 2.5 sec. The last two files live elsewhere, but can still be referenced by the playlist.

## Sorting and Naming
The list view UI is based on the sorted file and folder order. This is enforced by sorting the actual filenames. When there are cases where you need to force a specific order, you can prepend the file and folder names with `XX_` where `X` is a digit between 0-9. This will let you place an action called `On` before `Off`, even though when sorted alphabeticaly, `Off` would come before `On`. Therefore, you would name your files `00_On.rfid` and `01_Off.rfid`. When the files and folders are rendered for display, any `XX_` prefix will be stripped. All underscores will be replaced with spaces. Extensions will be stripped. Casing is preserved. Additionally, all files and folders that begin with a `.` will be ignored when drawing the UI. However, they can still be referenced in playlists. This keeps the UI unclutterd.

## Signal playback
The signal files are played back as recorded. During playback/transmit, the LED light will flash green until the action is complete. For RFID signals, they are continuously played back for 3 seconds.
The signal files are played back as recorded. During playback/transmit, the LED light will flash blue until the action is complete. For RFID signals, they are continuously played back for 3 seconds.

## On deck... maybe?
- Playlist support: Thinking a `.qpl` file (Quac playlist file - just a text file), that lists the full path of every command you wish to play back. Playlists would be rendered as buttons. Support a `pause [ms]` command so you can space out the actions inside of a playlist.
- Hidden file/folder support: Hide files and folders if they start with a `.`. This allows you to place/organize the files used by a playlist in your current directory structure, without them appearing as buttons/groups in the app.
- Horizontal layout
- Customize length of RFID playback. (Per file? hmm...)
- Improved UI
Expand Down

0 comments on commit 8c712cf

Please sign in to comment.