adding function key and actions for cropping

This commit is contained in:
ben-caldwell
2018-01-06 15:55:11 +13:00
parent bc8707f47c
commit 7519b8e1bd
11 changed files with 390 additions and 307 deletions

502
.idea/workspace.xml generated
View File

@@ -2,11 +2,17 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="908505e2-8b2f-4abb-8017-7a9728876708" name="Default" comment=""> <list default="true" id="908505e2-8b2f-4abb-8017-7a9728876708" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/actions.py" afterPath="$PROJECT_DIR$/actions.py" /> <change beforePath="$PROJECT_DIR$/actions.py" afterPath="$PROJECT_DIR$/actions.py" />
<change beforePath="$PROJECT_DIR$/data_centre/browser_data.py" afterPath="$PROJECT_DIR$/data_centre/browser_data.py" /> <change beforePath="$PROJECT_DIR$/data_centre/browser_data.py" afterPath="$PROJECT_DIR$/data_centre/browser_data.py" />
<change beforePath="$PROJECT_DIR$/data_centre/data.py" afterPath="$PROJECT_DIR$/data_centre/data.py" /> <change beforePath="$PROJECT_DIR$/data_centre/data.py" afterPath="$PROJECT_DIR$/data_centre/data.py" />
<change beforePath="$PROJECT_DIR$/data_centre/json_objects/settings.json" afterPath="$PROJECT_DIR$/data_centre/json_objects/settings.json" /> <change beforePath="$PROJECT_DIR$/data_centre/json_objects/next_bank_number.json" afterPath="$PROJECT_DIR$/data_centre/json_objects/next_slot_number.json" />
<change beforePath="$PROJECT_DIR$/display_centre/display.py" afterPath="$PROJECT_DIR$/display_centre/display.py" /> <change beforePath="$PROJECT_DIR$/display_centre/display.py" afterPath="$PROJECT_DIR$/display_centre/display.py" />
<change beforePath="$PROJECT_DIR$/display_centre/messages.py" afterPath="$PROJECT_DIR$/display_centre/messages.py" />
<change beforePath="$PROJECT_DIR$/r_e_c_u_r.py" afterPath="$PROJECT_DIR$/r_e_c_u_r.py" />
<change beforePath="$PROJECT_DIR$/user_input/numpad_input.py" afterPath="$PROJECT_DIR$/user_input/numpad_input.py" />
<change beforePath="$PROJECT_DIR$/video_centre/video_driver.py" afterPath="$PROJECT_DIR$/video_centre/video_driver.py" />
<change beforePath="$PROJECT_DIR$/video_centre/video_player.py" afterPath="$PROJECT_DIR$/video_centre/video_player.py" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" /> <option name="TRACKING_ENABLED" value="true" />
@@ -21,7 +27,7 @@
<entry file="file://$PROJECT_DIR$/r_e_c_u_r.py"> <entry file="file://$PROJECT_DIR$/r_e_c_u_r.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="350"> <state relative-caret-position="350">
<caret line="20" column="12" lean-forward="true" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="12" /> <caret line="29" column="0" lean-forward="true" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
<folding> <folding>
<element signature="e#0#16#0" expanded="true" /> <element signature="e#0#16#0" expanded="true" />
</folding> </folding>
@@ -29,11 +35,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="numpad_input.py" pinned="false" current-in-tab="false"> <file leaf-file-name="numpad_input.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/user_input/numpad_input.py"> <entry file="file://$PROJECT_DIR$/user_input/numpad_input.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="335"> <state relative-caret-position="224">
<caret line="52" column="50" lean-forward="false" selection-start-line="52" selection-start-column="50" selection-end-line="52" selection-end-column="50" /> <caret line="100" column="58" lean-forward="true" selection-start-line="100" selection-start-column="58" selection-end-line="100" selection-end-column="58" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@@ -42,25 +48,24 @@
<file leaf-file-name="data.py" pinned="false" current-in-tab="false"> <file leaf-file-name="data.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/data_centre/data.py"> <entry file="file://$PROJECT_DIR$/data_centre/data.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="525"> <state relative-caret-position="160">
<caret line="21" column="15" lean-forward="true" selection-start-line="21" selection-start-column="15" selection-end-line="21" selection-end-column="15" /> <caret line="132" column="48" lean-forward="true" selection-start-line="132" selection-start-column="48" selection-end-line="132" selection-end-column="48" />
<folding> <folding>
<element signature="e#0#11#0" expanded="true" /> <element signature="e#0#11#0" expanded="true" />
<element signature="e#1316#1633#0" expanded="false" /> <element signature="e#1314#1631#0" expanded="false" />
<element signature="e#1706#2043#0" expanded="false" /> <element signature="e#1704#2041#0" expanded="false" />
<element signature="e#2098#2281#0" expanded="false" /> <element signature="e#2096#2273#0" expanded="false" />
<element signature="e#2341#2616#0" expanded="false" /> <element signature="e#2333#2608#0" expanded="false" />
<element signature="e#2670#2720#0" expanded="false" /> <element signature="e#2662#2712#0" expanded="false" />
<element signature="e#2776#3095#0" expanded="false" /> <element signature="e#2768#3087#0" expanded="false" />
<element signature="e#3415#3447#0" expanded="false" /> <element signature="e#3407#3439#0" expanded="false" />
<element signature="e#3489#4727#0" expanded="false" /> <element signature="e#3481#4719#0" expanded="false" />
<element signature="e#4779#5018#0" expanded="false" /> <element signature="e#4983#5222#0" expanded="false" />
<element signature="e#5073#5310#0" expanded="false" /> <element signature="e#5277#5514#0" expanded="false" />
<element signature="e#5392#5594#0" expanded="false" /> <element signature="e#5865#7018#0" expanded="false" />
<element signature="e#5661#6814#0" expanded="false" /> <element signature="e#7092#7907#0" expanded="false" />
<element signature="e#6888#7703#0" expanded="false" /> <element signature="e#8021#8598#0" expanded="false" />
<element signature="e#7817#8394#0" expanded="false" /> <element signature="e#8653#8773#0" expanded="false" />
<element signature="e#8449#8569#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -69,24 +74,34 @@
<file leaf-file-name="browser_data.py" pinned="false" current-in-tab="false"> <file leaf-file-name="browser_data.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/data_centre/browser_data.py"> <entry file="file://$PROJECT_DIR$/data_centre/browser_data.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198"> <state relative-caret-position="269">
<caret line="8" column="30" lean-forward="true" selection-start-line="8" selection-start-column="30" selection-end-line="8" selection-end-column="30" /> <caret line="29" column="32" lean-forward="false" selection-start-line="29" selection-start-column="32" selection-end-line="29" selection-end-column="32" />
<folding> <folding>
<element signature="e#0#9#0" expanded="true" /> <element signature="e#0#9#0" expanded="true" />
<element signature="e#405#559#0" expanded="false" /> <element signature="e#405#559#0" expanded="false" />
<element signature="e#1362#1593#0" expanded="false" /> <element signature="e#1364#1595#0" expanded="false" />
<element signature="e#1675#2619#0" expanded="false" /> <element signature="e#1677#2621#0" expanded="false" />
<element signature="e#2677#2858#0" expanded="false" /> <element signature="e#2679#2860#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="video_driver.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/video_centre/video_driver.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="59" column="40" lean-forward="true" selection-start-line="59" selection-start-column="40" selection-end-line="59" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="actions.py" pinned="false" current-in-tab="false"> <file leaf-file-name="actions.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/actions.py"> <entry file="file://$PROJECT_DIR$/actions.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-76"> <state relative-caret-position="424">
<caret line="28" column="41" lean-forward="false" selection-start-line="28" selection-start-column="41" selection-end-line="28" selection-end-column="41" /> <caret line="76" column="39" lean-forward="false" selection-start-line="76" selection-start-column="8" selection-end-line="76" selection-end-column="39" />
<folding> <folding>
<element signature="e#315#387#0" expanded="false" /> <element signature="e#315#387#0" expanded="false" />
<element signature="e#438#549#0" expanded="false" /> <element signature="e#438#549#0" expanded="false" />
@@ -102,6 +117,7 @@
<element signature="e#2298#2345#0" expanded="false" /> <element signature="e#2298#2345#0" expanded="false" />
<element signature="e#2397#2438#0" expanded="false" /> <element signature="e#2397#2438#0" expanded="false" />
<element signature="e#2483#2525#0" expanded="false" /> <element signature="e#2483#2525#0" expanded="false" />
<element signature="e#2566#2637#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -110,30 +126,17 @@
<file leaf-file-name="display.py" pinned="false" current-in-tab="false"> <file leaf-file-name="display.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/display_centre/display.py"> <entry file="file://$PROJECT_DIR$/display_centre/display.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1550"> <state relative-caret-position="260">
<caret line="210" column="0" lean-forward="false" selection-start-line="210" selection-start-column="0" selection-end-line="210" selection-end-column="0" /> <caret line="111" column="53" lean-forward="true" selection-start-line="111" selection-start-column="53" selection-end-line="111" selection-end-column="53" />
<folding> <folding>
<element signature="e#0#29#0" expanded="true" /> <element signature="e#0#29#0" expanded="true" />
<element signature="e#837#898#0" expanded="false" /> <element signature="e#837#898#0" expanded="false" />
<element signature="e#933#1579#0" expanded="false" /> <element signature="e#1709#1851#0" expanded="false" />
<element signature="e#1618#1760#0" expanded="false" /> <element signature="e#1888#2026#0" expanded="false" />
<element signature="e#1797#1935#0" expanded="false" /> <element signature="e#2064#2452#0" expanded="false" />
<element signature="e#1973#2361#0" expanded="false" /> <element signature="e#8273#8479#0" expanded="false" />
<element signature="e#2405#2852#0" expanded="false" /> <element signature="e#8556#9714#0" expanded="false" />
<element signature="e#2891#3736#0" expanded="false" /> <element signature="e#9786#9982#0" expanded="false" />
<element signature="e#3775#4668#0" expanded="false" />
<element signature="e#4708#5564#0" expanded="false" />
<element signature="e#5603#6189#0" expanded="false" />
<element signature="e#6239#6376#0" expanded="false" />
<element signature="e#6428#6571#0" expanded="false" />
<element signature="e#6617#7132#0" expanded="false" />
<element signature="e#6970#7132#0" expanded="false" />
<element signature="e#7227#7890#0" expanded="false" />
<element signature="e#7241#7498#0" expanded="false" />
<element signature="e#7943#8027#0" expanded="false" />
<element signature="e#8068#8274#0" expanded="false" />
<element signature="e#8351#9509#0" expanded="false" />
<element signature="e#9581#9777#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -142,18 +145,18 @@
<file leaf-file-name="video_player.py" pinned="false" current-in-tab="false"> <file leaf-file-name="video_player.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/video_centre/video_player.py"> <entry file="file://$PROJECT_DIR$/video_centre/video_player.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="334"> <state relative-caret-position="143">
<caret line="124" column="34" lean-forward="true" selection-start-line="124" selection-start-column="34" selection-end-line="124" selection-end-column="34" /> <caret line="123" column="13" lean-forward="true" selection-start-line="123" selection-start-column="13" selection-end-line="123" selection-end-column="13" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="messages.py" pinned="false" current-in-tab="true"> <file leaf-file-name="messages.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/display_centre/messages.py"> <entry file="file://$PROJECT_DIR$/display_centre/messages.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="400"> <state relative-caret-position="225">
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" /> <caret line="9" column="24" lean-forward="false" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="24" />
<folding> <folding>
<element signature="e#0#14#0" expanded="true" /> <element signature="e#0#14#0" expanded="true" />
</folding> </folding>
@@ -172,9 +175,6 @@
</component> </component>
<component name="FindInProjectRecents"> <component name="FindInProjectRecents">
<findStrings> <findStrings>
<find>logger</find>
<find>is_file_in_memory_bank</find>
<find>create_new_bank_mapping_in_first_open</find>
<find>generate_browser_list</find> <find>generate_browser_list</find>
<find>inspect</find> <find>inspect</find>
<find>browser_data</find> <find>browser_data</find>
@@ -202,11 +202,15 @@
<find>browser_list</find> <find>browser_list</find>
<find>update_nex</find> <find>update_nex</find>
<find>data</find> <find>data</find>
<find>next_bank_number</find>
<find>bank</find>
<find>bank_number</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>read_json</replace> <replace>read_json</replace>
<replace>SAMPLER</replace>
<replace>write_json</replace> <replace>write_json</replace>
<replace>SAMPLER</replace>
<replace>slot_number</replace>
</replaceStrings> </replaceStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
@@ -228,15 +232,15 @@
<option value="$PROJECT_DIR$/data_centre/data_centre.py" /> <option value="$PROJECT_DIR$/data_centre/data_centre.py" />
<option value="$PROJECT_DIR$/display_centre/message.py" /> <option value="$PROJECT_DIR$/display_centre/message.py" />
<option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/user_input/numpad_input.py" />
<option value="$PROJECT_DIR$/r_e_c_u_r.py" />
<option value="$PROJECT_DIR$/display_centre/messages.py" /> <option value="$PROJECT_DIR$/display_centre/messages.py" />
<option value="$PROJECT_DIR$/video_centre/video_driver.py" /> <option value="$PROJECT_DIR$/r_e_c_u_r.py" />
<option value="$PROJECT_DIR$/video_centre/video_player.py" /> <option value="$PROJECT_DIR$/video_centre/video_player.py" />
<option value="$PROJECT_DIR$/display_centre/display.py" /> <option value="$PROJECT_DIR$/video_centre/video_driver.py" />
<option value="$PROJECT_DIR$/actions.py" />
<option value="$PROJECT_DIR$/data_centre/browser_data.py" /> <option value="$PROJECT_DIR$/data_centre/browser_data.py" />
<option value="$PROJECT_DIR$/display_centre/display.py" />
<option value="$PROJECT_DIR$/data_centre/data.py" /> <option value="$PROJECT_DIR$/data_centre/data.py" />
<option value="$PROJECT_DIR$/actions.py" />
<option value="$PROJECT_DIR$/user_input/numpad_input.py" />
</list> </list>
</option> </option>
</component> </component>
@@ -269,6 +273,17 @@
<item name="r_e_c_u_r" type="b2602c69:ProjectViewProjectNode" /> <item name="r_e_c_u_r" type="b2602c69:ProjectViewProjectNode" />
<item name="r_e_c_u_r" type="462c0819:PsiDirectoryNode" /> <item name="r_e_c_u_r" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="r_e_c_u_r" type="b2602c69:ProjectViewProjectNode" />
<item name="r_e_c_u_r" type="462c0819:PsiDirectoryNode" />
<item name="data_centre" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="r_e_c_u_r" type="b2602c69:ProjectViewProjectNode" />
<item name="r_e_c_u_r" type="462c0819:PsiDirectoryNode" />
<item name="data_centre" type="462c0819:PsiDirectoryNode" />
<item name="json_objects" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="r_e_c_u_r" type="b2602c69:ProjectViewProjectNode" /> <item name="r_e_c_u_r" type="b2602c69:ProjectViewProjectNode" />
<item name="r_e_c_u_r" type="462c0819:PsiDirectoryNode" /> <item name="r_e_c_u_r" type="462c0819:PsiDirectoryNode" />
@@ -474,24 +489,19 @@
<folding> <folding>
<element signature="e#0#29#0" expanded="true" /> <element signature="e#0#29#0" expanded="true" />
<element signature="e#837#898#0" expanded="false" /> <element signature="e#837#898#0" expanded="false" />
<element signature="e#933#1579#0" expanded="false" /> <element signature="e#1888#2026#0" expanded="false" />
<element signature="e#1797#1935#0" expanded="false" /> <element signature="e#2064#2452#0" expanded="false" />
<element signature="e#1973#2361#0" expanded="false" /> <element signature="e#3262#3511#0" expanded="false" />
<element signature="e#2405#2852#0" expanded="false" /> <element signature="e#3753#4646#0" expanded="false" />
<element signature="e#3284#3533#0" expanded="false" /> <element signature="e#4686#5542#0" expanded="false" />
<element signature="e#3775#4668#0" expanded="false" /> <element signature="e#6445#6582#0" expanded="false" />
<element signature="e#4708#5564#0" expanded="false" /> <element signature="e#6634#6777#0" expanded="false" />
<element signature="e#5603#6189#0" expanded="false" /> <element signature="e#6823#7338#0" expanded="false" />
<element signature="e#5659#5965#0" expanded="false" /> <element signature="e#7176#7338#0" expanded="false" />
<element signature="e#6239#6376#0" expanded="false" /> <element signature="e#7433#8096#0" expanded="false" />
<element signature="e#6428#6571#0" expanded="false" /> <element signature="e#7447#7704#0" expanded="false" />
<element signature="e#6617#7132#0" expanded="false" /> <element signature="e#8273#8479#0" expanded="false" />
<element signature="e#6970#7132#0" expanded="false" /> <element signature="e#8556#9714#0" expanded="false" />
<element signature="e#7227#7890#0" expanded="false" />
<element signature="e#7241#7498#0" expanded="false" />
<element signature="e#7943#8027#0" expanded="false" />
<element signature="e#8068#8274#0" expanded="false" />
<element signature="e#8351#9509#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -510,21 +520,20 @@
<caret line="102" column="37" lean-forward="false" selection-start-line="102" selection-start-column="29" selection-end-line="102" selection-end-column="37" /> <caret line="102" column="37" lean-forward="false" selection-start-line="102" selection-start-column="29" selection-end-line="102" selection-end-column="37" />
<folding> <folding>
<element signature="e#0#11#0" expanded="true" /> <element signature="e#0#11#0" expanded="true" />
<element signature="e#1316#1633#0" expanded="false" /> <element signature="e#1314#1631#0" expanded="false" />
<element signature="e#1706#2043#0" expanded="false" /> <element signature="e#1704#2041#0" expanded="false" />
<element signature="e#2098#2281#0" expanded="false" /> <element signature="e#2096#2273#0" expanded="false" />
<element signature="e#2341#2616#0" expanded="false" /> <element signature="e#2333#2608#0" expanded="false" />
<element signature="e#2670#2720#0" expanded="false" /> <element signature="e#2662#2712#0" expanded="false" />
<element signature="e#2776#3095#0" expanded="false" /> <element signature="e#2768#3087#0" expanded="false" />
<element signature="e#3415#3447#0" expanded="false" /> <element signature="e#3407#3439#0" expanded="false" />
<element signature="e#3489#4727#0" expanded="false" /> <element signature="e#3481#4719#0" expanded="false" />
<element signature="e#4779#5018#0" expanded="false" /> <element signature="e#4983#5222#0" expanded="false" />
<element signature="e#5073#5310#0" expanded="false" /> <element signature="e#5277#5514#0" expanded="false" />
<element signature="e#5392#5594#0" expanded="false" /> <element signature="e#5865#7018#0" expanded="false" />
<element signature="e#5661#6814#0" expanded="false" /> <element signature="e#7092#7907#0" expanded="false" />
<element signature="e#6888#7703#0" expanded="false" /> <element signature="e#8021#8598#0" expanded="false" />
<element signature="e#7817#8394#0" expanded="false" /> <element signature="e#8653#8773#0" expanded="false" />
<element signature="e#8449#8569#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -575,24 +584,19 @@
<folding> <folding>
<element signature="e#0#29#0" expanded="true" /> <element signature="e#0#29#0" expanded="true" />
<element signature="e#837#898#0" expanded="false" /> <element signature="e#837#898#0" expanded="false" />
<element signature="e#933#1579#0" expanded="false" /> <element signature="e#1888#2026#0" expanded="false" />
<element signature="e#1797#1935#0" expanded="false" /> <element signature="e#2064#2452#0" expanded="false" />
<element signature="e#1973#2361#0" expanded="false" /> <element signature="e#3262#3511#0" expanded="false" />
<element signature="e#2405#2852#0" expanded="false" /> <element signature="e#3753#4646#0" expanded="false" />
<element signature="e#3284#3533#0" expanded="false" /> <element signature="e#4686#5542#0" expanded="false" />
<element signature="e#3775#4668#0" expanded="false" /> <element signature="e#6445#6582#0" expanded="false" />
<element signature="e#4708#5564#0" expanded="false" /> <element signature="e#6634#6777#0" expanded="false" />
<element signature="e#5603#6189#0" expanded="false" /> <element signature="e#6823#7338#0" expanded="false" />
<element signature="e#5659#5965#0" expanded="false" /> <element signature="e#7176#7338#0" expanded="false" />
<element signature="e#6239#6376#0" expanded="false" /> <element signature="e#7433#8096#0" expanded="false" />
<element signature="e#6428#6571#0" expanded="false" /> <element signature="e#7447#7704#0" expanded="false" />
<element signature="e#6617#7132#0" expanded="false" /> <element signature="e#8273#8479#0" expanded="false" />
<element signature="e#6970#7132#0" expanded="false" /> <element signature="e#8556#9714#0" expanded="false" />
<element signature="e#7227#7890#0" expanded="false" />
<element signature="e#7241#7498#0" expanded="false" />
<element signature="e#7943#8027#0" expanded="false" />
<element signature="e#8068#8274#0" expanded="false" />
<element signature="e#8351#9509#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -632,21 +636,20 @@
<caret line="222" column="4" lean-forward="false" selection-start-line="222" selection-start-column="4" selection-end-line="222" selection-end-column="4" /> <caret line="222" column="4" lean-forward="false" selection-start-line="222" selection-start-column="4" selection-end-line="222" selection-end-column="4" />
<folding> <folding>
<element signature="e#0#11#0" expanded="true" /> <element signature="e#0#11#0" expanded="true" />
<element signature="e#1316#1633#0" expanded="false" /> <element signature="e#1314#1631#0" expanded="false" />
<element signature="e#1706#2043#0" expanded="false" /> <element signature="e#1704#2041#0" expanded="false" />
<element signature="e#2098#2281#0" expanded="false" /> <element signature="e#2096#2273#0" expanded="false" />
<element signature="e#2341#2616#0" expanded="false" /> <element signature="e#2333#2608#0" expanded="false" />
<element signature="e#2670#2720#0" expanded="false" /> <element signature="e#2662#2712#0" expanded="false" />
<element signature="e#2776#3095#0" expanded="false" /> <element signature="e#2768#3087#0" expanded="false" />
<element signature="e#3415#3447#0" expanded="false" /> <element signature="e#3407#3439#0" expanded="false" />
<element signature="e#3489#4727#0" expanded="false" /> <element signature="e#3481#4719#0" expanded="false" />
<element signature="e#4779#5018#0" expanded="false" /> <element signature="e#4983#5222#0" expanded="false" />
<element signature="e#5073#5310#0" expanded="false" /> <element signature="e#5277#5514#0" expanded="false" />
<element signature="e#5392#5594#0" expanded="false" /> <element signature="e#5865#7018#0" expanded="false" />
<element signature="e#5661#6814#0" expanded="false" /> <element signature="e#7092#7907#0" expanded="false" />
<element signature="e#6888#7703#0" expanded="false" /> <element signature="e#8021#8598#0" expanded="false" />
<element signature="e#7817#8394#0" expanded="false" /> <element signature="e#8653#8773#0" expanded="false" />
<element signature="e#8449#8569#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -684,24 +687,19 @@
<folding> <folding>
<element signature="e#0#29#0" expanded="true" /> <element signature="e#0#29#0" expanded="true" />
<element signature="e#837#898#0" expanded="false" /> <element signature="e#837#898#0" expanded="false" />
<element signature="e#933#1579#0" expanded="false" /> <element signature="e#1888#2026#0" expanded="false" />
<element signature="e#1797#1935#0" expanded="false" /> <element signature="e#2064#2452#0" expanded="false" />
<element signature="e#1973#2361#0" expanded="false" /> <element signature="e#3262#3511#0" expanded="false" />
<element signature="e#2405#2852#0" expanded="false" /> <element signature="e#3753#4646#0" expanded="false" />
<element signature="e#3284#3533#0" expanded="false" /> <element signature="e#4686#5542#0" expanded="false" />
<element signature="e#3775#4668#0" expanded="false" /> <element signature="e#6445#6582#0" expanded="false" />
<element signature="e#4708#5564#0" expanded="false" /> <element signature="e#6634#6777#0" expanded="false" />
<element signature="e#5603#6189#0" expanded="false" /> <element signature="e#6823#7338#0" expanded="false" />
<element signature="e#5659#5965#0" expanded="false" /> <element signature="e#7176#7338#0" expanded="false" />
<element signature="e#6239#6376#0" expanded="false" /> <element signature="e#7433#8096#0" expanded="false" />
<element signature="e#6428#6571#0" expanded="false" /> <element signature="e#7447#7704#0" expanded="false" />
<element signature="e#6617#7132#0" expanded="false" /> <element signature="e#8273#8479#0" expanded="false" />
<element signature="e#6970#7132#0" expanded="false" /> <element signature="e#8556#9714#0" expanded="false" />
<element signature="e#7227#7890#0" expanded="false" />
<element signature="e#7241#7498#0" expanded="false" />
<element signature="e#7943#8027#0" expanded="false" />
<element signature="e#8068#8274#0" expanded="false" />
<element signature="e#8351#9509#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -741,21 +739,20 @@
<caret line="222" column="4" lean-forward="false" selection-start-line="222" selection-start-column="4" selection-end-line="222" selection-end-column="4" /> <caret line="222" column="4" lean-forward="false" selection-start-line="222" selection-start-column="4" selection-end-line="222" selection-end-column="4" />
<folding> <folding>
<element signature="e#0#11#0" expanded="true" /> <element signature="e#0#11#0" expanded="true" />
<element signature="e#1316#1633#0" expanded="false" /> <element signature="e#1314#1631#0" expanded="false" />
<element signature="e#1706#2043#0" expanded="false" /> <element signature="e#1704#2041#0" expanded="false" />
<element signature="e#2098#2281#0" expanded="false" /> <element signature="e#2096#2273#0" expanded="false" />
<element signature="e#2341#2616#0" expanded="false" /> <element signature="e#2333#2608#0" expanded="false" />
<element signature="e#2670#2720#0" expanded="false" /> <element signature="e#2662#2712#0" expanded="false" />
<element signature="e#2776#3095#0" expanded="false" /> <element signature="e#2768#3087#0" expanded="false" />
<element signature="e#3415#3447#0" expanded="false" /> <element signature="e#3407#3439#0" expanded="false" />
<element signature="e#3489#4727#0" expanded="false" /> <element signature="e#3481#4719#0" expanded="false" />
<element signature="e#4779#5018#0" expanded="false" /> <element signature="e#4983#5222#0" expanded="false" />
<element signature="e#5073#5310#0" expanded="false" /> <element signature="e#5277#5514#0" expanded="false" />
<element signature="e#5392#5594#0" expanded="false" /> <element signature="e#5865#7018#0" expanded="false" />
<element signature="e#5661#6814#0" expanded="false" /> <element signature="e#7092#7907#0" expanded="false" />
<element signature="e#6888#7703#0" expanded="false" /> <element signature="e#8021#8598#0" expanded="false" />
<element signature="e#7817#8394#0" expanded="false" /> <element signature="e#8653#8773#0" expanded="false" />
<element signature="e#8449#8569#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -861,34 +858,101 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/user_input/numpad_input.py"> <entry file="file://$PROJECT_DIR$/r_e_c_u_r.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="335"> <state relative-caret-position="350">
<caret line="52" column="50" lean-forward="false" selection-start-line="52" selection-start-column="50" selection-end-line="52" selection-end-column="50" /> <caret line="29" column="0" lean-forward="true" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
<folding>
<element signature="e#0#16#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/display_centre/messages.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="9" column="24" lean-forward="false" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="24" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/video_centre/video_player.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="143">
<caret line="123" column="13" lean-forward="true" selection-start-line="123" selection-start-column="13" selection-end-line="123" selection-end-column="13" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/video_centre/video_driver.py"> <entry file="file://$PROJECT_DIR$/video_centre/video_driver.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="50"> <state relative-caret-position="150">
<caret line="2" column="0" lean-forward="true" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> <caret line="59" column="40" lean-forward="true" selection-start-line="59" selection-start-column="40" selection-end-line="59" selection-end-column="40" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/video_centre/video_player.py"> <entry file="file://$PROJECT_DIR$/data_centre/browser_data.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="334"> <state relative-caret-position="269">
<caret line="124" column="34" lean-forward="true" selection-start-line="124" selection-start-column="34" selection-end-line="124" selection-end-column="34" /> <caret line="29" column="32" lean-forward="false" selection-start-line="29" selection-start-column="32" selection-end-line="29" selection-end-column="32" />
<folding /> <folding>
<element signature="e#0#9#0" expanded="true" />
<element signature="e#405#559#0" expanded="false" />
<element signature="e#1364#1595#0" expanded="false" />
<element signature="e#1677#2621#0" expanded="false" />
<element signature="e#2679#2860#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/display_centre/display.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="260">
<caret line="111" column="53" lean-forward="true" selection-start-line="111" selection-start-column="53" selection-end-line="111" selection-end-column="53" />
<folding>
<element signature="e#0#29#0" expanded="true" />
<element signature="e#837#898#0" expanded="false" />
<element signature="e#1709#1851#0" expanded="false" />
<element signature="e#1888#2026#0" expanded="false" />
<element signature="e#2064#2452#0" expanded="false" />
<element signature="e#8273#8479#0" expanded="false" />
<element signature="e#8556#9714#0" expanded="false" />
<element signature="e#9786#9982#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_centre/data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="132" column="48" lean-forward="true" selection-start-line="132" selection-start-column="48" selection-end-line="132" selection-end-column="48" />
<folding>
<element signature="e#0#11#0" expanded="true" />
<element signature="e#1314#1631#0" expanded="false" />
<element signature="e#1704#2041#0" expanded="false" />
<element signature="e#2096#2273#0" expanded="false" />
<element signature="e#2333#2608#0" expanded="false" />
<element signature="e#2662#2712#0" expanded="false" />
<element signature="e#2768#3087#0" expanded="false" />
<element signature="e#3407#3439#0" expanded="false" />
<element signature="e#3481#4719#0" expanded="false" />
<element signature="e#4983#5222#0" expanded="false" />
<element signature="e#5277#5514#0" expanded="false" />
<element signature="e#5865#7018#0" expanded="false" />
<element signature="e#7092#7907#0" expanded="false" />
<element signature="e#8021#8598#0" expanded="false" />
<element signature="e#8653#8773#0" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/actions.py"> <entry file="file://$PROJECT_DIR$/actions.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-76"> <state relative-caret-position="424">
<caret line="28" column="41" lean-forward="false" selection-start-line="28" selection-start-column="41" selection-end-line="28" selection-end-column="41" /> <caret line="76" column="39" lean-forward="false" selection-start-line="76" selection-start-column="8" selection-end-line="76" selection-end-column="39" />
<folding> <folding>
<element signature="e#315#387#0" expanded="false" /> <element signature="e#315#387#0" expanded="false" />
<element signature="e#438#549#0" expanded="false" /> <element signature="e#438#549#0" expanded="false" />
@@ -904,96 +968,16 @@
<element signature="e#2298#2345#0" expanded="false" /> <element signature="e#2298#2345#0" expanded="false" />
<element signature="e#2397#2438#0" expanded="false" /> <element signature="e#2397#2438#0" expanded="false" />
<element signature="e#2483#2525#0" expanded="false" /> <element signature="e#2483#2525#0" expanded="false" />
<element signature="e#2566#2637#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/display_centre/display.py"> <entry file="file://$PROJECT_DIR$/user_input/numpad_input.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1550"> <state relative-caret-position="224">
<caret line="210" column="0" lean-forward="false" selection-start-line="210" selection-start-column="0" selection-end-line="210" selection-end-column="0" /> <caret line="100" column="58" lean-forward="true" selection-start-line="100" selection-start-column="58" selection-end-line="100" selection-end-column="58" />
<folding> <folding />
<element signature="e#0#29#0" expanded="true" />
<element signature="e#837#898#0" expanded="false" />
<element signature="e#933#1579#0" expanded="false" />
<element signature="e#1618#1760#0" expanded="false" />
<element signature="e#1797#1935#0" expanded="false" />
<element signature="e#1973#2361#0" expanded="false" />
<element signature="e#2405#2852#0" expanded="false" />
<element signature="e#2891#3736#0" expanded="false" />
<element signature="e#3775#4668#0" expanded="false" />
<element signature="e#4708#5564#0" expanded="false" />
<element signature="e#5603#6189#0" expanded="false" />
<element signature="e#6239#6376#0" expanded="false" />
<element signature="e#6428#6571#0" expanded="false" />
<element signature="e#6617#7132#0" expanded="false" />
<element signature="e#6970#7132#0" expanded="false" />
<element signature="e#7227#7890#0" expanded="false" />
<element signature="e#7241#7498#0" expanded="false" />
<element signature="e#7943#8027#0" expanded="false" />
<element signature="e#8068#8274#0" expanded="false" />
<element signature="e#8351#9509#0" expanded="false" />
<element signature="e#9581#9777#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/r_e_c_u_r.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="350">
<caret line="20" column="12" lean-forward="true" selection-start-line="20" selection-start-column="12" selection-end-line="20" selection-end-column="12" />
<folding>
<element signature="e#0#16#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_centre/browser_data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="8" column="30" lean-forward="true" selection-start-line="8" selection-start-column="30" selection-end-line="8" selection-end-column="30" />
<folding>
<element signature="e#0#9#0" expanded="true" />
<element signature="e#405#559#0" expanded="false" />
<element signature="e#1362#1593#0" expanded="false" />
<element signature="e#1675#2619#0" expanded="false" />
<element signature="e#2677#2858#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data_centre/data.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="525">
<caret line="21" column="15" lean-forward="true" selection-start-line="21" selection-start-column="15" selection-end-line="21" selection-end-column="15" />
<folding>
<element signature="e#0#11#0" expanded="true" />
<element signature="e#1316#1633#0" expanded="false" />
<element signature="e#1706#2043#0" expanded="false" />
<element signature="e#2098#2281#0" expanded="false" />
<element signature="e#2341#2616#0" expanded="false" />
<element signature="e#2670#2720#0" expanded="false" />
<element signature="e#2776#3095#0" expanded="false" />
<element signature="e#3415#3447#0" expanded="false" />
<element signature="e#3489#4727#0" expanded="false" />
<element signature="e#4779#5018#0" expanded="false" />
<element signature="e#5073#5310#0" expanded="false" />
<element signature="e#5392#5594#0" expanded="false" />
<element signature="e#5661#6814#0" expanded="false" />
<element signature="e#6888#7703#0" expanded="false" />
<element signature="e#7817#8394#0" expanded="false" />
<element signature="e#8449#8569#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/display_centre/messages.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="400">
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>

View File

@@ -18,7 +18,7 @@ class Actions(object):
is_file, name = self.data.browser_data.extract_file_type_and_name_from_browser_format( is_file, name = self.data.browser_data.extract_file_type_and_name_from_browser_format(
self.data.return_browser_list()[self.display.selected_list_index]['name']) self.data.return_browser_list()[self.display.selected_list_index]['name'])
if is_file: if is_file:
self.data.create_new_bank_mapping_in_first_open(name) self.data.create_new_slot_mapping_in_first_open(name)
else: else:
self.data.browser_data.update_open_folders(name) self.data.browser_data.update_open_folders(name)
self.data.rewrite_browser_list() self.data.rewrite_browser_list()
@@ -51,11 +51,11 @@ class Actions(object):
self.display.topscreen_menu_index = 0 self.display.topscreen_menu_index = 0
self.display.current_menu_index = self.display.topscreen_menu_index self.display.current_menu_index = self.display.topscreen_menu_index
if self.display.display_mode == "BROWSER": if self.display.display_mode == "BROWSER":
self.display.display_mode = "SAMPLER"
elif self.display.display_mode == "SAMPLER":
self.display.display_mode = "SETTINGS" self.display.display_mode = "SETTINGS"
elif self.display.display_mode == "SETTINGS": elif self.display.display_mode == "SAMPLER":
self.display.display_mode = "BROWSER" self.display.display_mode = "BROWSER"
elif self.display.display_mode == "SETTINGS":
self.display.display_mode = "SAMPLER"
def toggle_pause_on_player(self): def toggle_pause_on_player(self):
self.video_driver.current_player.toggle_pause() self.video_driver.current_player.toggle_pause()
@@ -65,3 +65,15 @@ class Actions(object):
def seek_back_on_player(self): def seek_back_on_player(self):
self.video_driver.current_player.seek(-30) self.video_driver.current_player.seek(-30)
def toggle_function(self):
self.message_handler.function_on = not self.message_handler.function_on
def set_playing_sample_start_to_current_duration(self):
current_slot = self.video_driver.current_player.slot_number
current_duration = self.video_driver.current_player.get_duration()
self.data.update_slot_start_to_this_time(current_slot, current_duration)
def clear_playing_sample_start_time(self):
current_slot = self.video_driver.current_player.slot_number
self.data.update_slot_start_to_this_time(current_slot, 0)

View File

@@ -27,9 +27,9 @@ class BrowserData(object):
for browser_line in self.browser_list: for browser_line in self.browser_list:
is_file, file_name = self.extract_file_type_and_name_from_browser_format(browser_line['name']) is_file, file_name = self.extract_file_type_and_name_from_browser_format(browser_line['name'])
if is_file: if is_file:
is_banked, bank_number = self._is_file_in_memory_bank(file_name) is_slotted, slot_number = self._is_file_in_memory_bank(file_name)
if is_banked: if is_slotted:
browser_line['bank'] = str(bank_number) browser_line['bank'] = str(slot_number)
return self.browser_list return self.browser_list
@@ -49,7 +49,7 @@ class BrowserData(object):
indent = ' ' * 4 * (current_level) indent = ' ' * 4 * (current_level)
for folder in dirs: for folder in dirs:
is_open, char = self._check_folder_state(folder) is_open, char = self._check_folder_state(folder)
self.browser_list.append(dict(name='{}{}{}'.format(indent, folder, char), bank='x')) self.browser_list.append(dict(name='{}{}{}'.format(indent, folder, char), slot='x'))
if (is_open): if (is_open):
next_path = '{}/{}'.format(root, folder) next_path = '{}/{}'.format(root, folder)
next_level = current_level + 1 next_level = current_level + 1
@@ -58,7 +58,7 @@ class BrowserData(object):
for f in files: for f in files:
split_name = os.path.splitext(f) split_name = os.path.splitext(f)
if (split_name[1] in ['.mp4', '.mkv']): if (split_name[1] in ['.mp4', '.mkv']):
self.browser_list.append(dict(name='{}{}'.format(indent, split_name[0]), bank='-')) self.browser_list.append(dict(name='{}{}'.format(indent, split_name[0]), slot='-'))
def _check_folder_state(self, folder_name): def _check_folder_state(self, folder_name):
######## used for displaying folders as open or closed ######## ######## used for displaying folders as open or closed ########
@@ -71,8 +71,8 @@ class BrowserData(object):
######## used for displaying the mappings in browser view ######## ######## used for displaying the mappings in browser view ########
if not self.memory_bank: if not self.memory_bank:
self.memory_bank = data_centre.data.read_json(data_centre.data.BANK_DATA_JSON) self.memory_bank = data_centre.data.read_json(data_centre.data.BANK_DATA_JSON)
for index, bank in enumerate(self.memory_bank): for index, slot in enumerate(self.memory_bank):
if file_name == bank['name']: if file_name == slot['name']:
return True, index return True, index
return False, '' return False, ''

View File

@@ -11,9 +11,9 @@ def get_the_current_dir_path():
return os.path.split(current_file_path)[0] return os.path.split(current_file_path)[0]
BANK_DATA_JSON = 'display_data.json' BANK_DATA_JSON = 'display_data.json'
NEXT_SLOT_JSON = 'next_bank_number.json' NEXT_SLOT_JSON = 'next_slot_number.json'
SETTINGS_JSON = 'settings.json' SETTINGS_JSON = 'settings.json'
EMPTY_BANK = dict(name='', location='', length=-1, start=-1, end=-1) EMPTY_SLOT = dict(name='', location='', length=-1, start=-1, end=-1)
PATH_TO_DATA_OBJECTS = '{}/json_objects/'.format(get_the_current_dir_path()) PATH_TO_DATA_OBJECTS = '{}/json_objects/'.format(get_the_current_dir_path())
def read_json(file_name): def read_json(file_name):
@@ -54,7 +54,7 @@ class Data(object):
return False return False
def create_new_slot_mapping(self, slot_number, file_name): def create_new_slot_mapping(self, slot_number, file_name):
######## used for mapping current video to a specific bank ######## ######## used for mapping current video to a specific slot ########
has_location, location = self._get_path_for_file(file_name) has_location, location = self._get_path_for_file(file_name)
length = self._get_length_for_file(location) length = self._get_length_for_file(location)
new_slot = dict(name=file_name, location=location, length=length, start=-1, end=-1) new_slot = dict(name=file_name, location=location, length=length, start=-1, end=-1)
@@ -63,8 +63,8 @@ class Data(object):
@staticmethod @staticmethod
def clear_all_slots(): def clear_all_slots():
memory_bank = read_json(BANK_DATA_JSON) memory_bank = read_json(BANK_DATA_JSON)
for index, bank in enumerate(memory_bank): for index in enumerate(memory_bank):
memory_bank[index] = EMPTY_BANK memory_bank[index] = EMPTY_SLOT
update_json(BANK_DATA_JSON, memory_bank) update_json(BANK_DATA_JSON, memory_bank)
def update_next_slot_number(self, new_value): def update_next_slot_number(self, new_value):
@@ -125,9 +125,14 @@ class Data(object):
context = dict(location=next_slot_details['location'], name=next_slot_details['name'], context = dict(location=next_slot_details['location'], name=next_slot_details['name'],
length=next_slot_details['length'], start=start_value, end=end_value, length=next_slot_details['length'], start=start_value, end=end_value,
bank_number=next_slot_number) slot_number=next_slot_number)
return context return context
def update_slot_start_to_this_time(self, slot_number, time):
memory_bank = read_json(BANK_DATA_JSON)
memory_bank[slot_number]['start'] = time
update_json(BANK_DATA_JSON, memory_bank)
def _get_length_for_file(self, path): def _get_length_for_file(self, path):
if self.has_omx: if self.has_omx:
temp_player = OMXPlayer(path, args=['--alpha', '0'], dbus_name='t.t') temp_player = OMXPlayer(path, args=['--alpha', '0'], dbus_name='t.t')
@@ -145,10 +150,10 @@ class Data(object):
return False, '' return False, ''
@staticmethod @staticmethod
def _update_a_slots_data(bank_number, slot_info): def _update_a_slots_data(slot_number, slot_info):
######## overwrite a given banks info with new data ######## ######## overwrite a given slots info with new data ########
memory_bank = read_json(BANK_DATA_JSON) memory_bank = read_json(BANK_DATA_JSON)
memory_bank[bank_number] = slot_info memory_bank[slot_number] = slot_info
update_json(BANK_DATA_JSON, memory_bank) update_json(BANK_DATA_JSON, memory_bank)
@staticmethod @staticmethod
@@ -212,12 +217,12 @@ class Data(object):
if playback_mode == 'SAMPLER': if playback_mode == 'SAMPLER':
next_slot_number = current_slot_number next_slot_number = current_slot_number
elif playback_mode == 'RANDOM': elif playback_mode == 'RANDOM':
#TODO: actually find which banks have value and only use those #TODO: actually find which slots have value and only use those
next_slot_number = randint(0,14) next_slot_number = randint(0,14)
elif playback_mode == 'PLAYLIST': elif playback_mode == 'PLAYLIST':
#TODO: implement some playlist objects and logic at some point #TODO: implement some playlist objects and logic at some point
next_slot_number = current_slot_number next_slot_number = current_slot_number
update_json('next_bank_number.json',next_slot_number) update_json('next_slot_number.json',next_slot_number)
@staticmethod @staticmethod
def _try_import_omx(): def _try_import_omx():

View File

@@ -37,6 +37,7 @@ class Display(object):
self.display_text.tag_configure("INFO_MESSAGE", background="blue", foreground="white") self.display_text.tag_configure("INFO_MESSAGE", background="blue", foreground="white")
self.display_text.tag_configure("PLAYER_INFO", background="black", foreground="yellow") self.display_text.tag_configure("PLAYER_INFO", background="black", foreground="yellow")
self.display_text.tag_configure("COLUMN_NAME", background="black", foreground="cyan") self.display_text.tag_configure("COLUMN_NAME", background="black", foreground="cyan")
self.display_text.tag_configure("FUNCTION", background="cyan", foreground="black")
def _load_display(self): def _load_display(self):
self._load_title() self._load_title()
@@ -69,26 +70,26 @@ class Display(object):
self._highlight_this_row(self.selected_list_index - self.top_menu_index) self._highlight_this_row(self.selected_list_index - self.top_menu_index)
def _load_sampler(self): def _load_sampler(self):
bank_info = self.data.get_sampler_data() bank_data = self.data.get_sampler_data()
self.display_text.insert(END, '------------------ <SAMPLER> ------------------ \n') self.display_text.insert(END, '------------------ <SAMPLER> ------------------ \n')
self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29) self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29)
self.display_text.insert(END, '{:^4} {:<22} {:<4} {:<4} {:<4} \n'.format( self.display_text.insert(END, '{:^4} {:<22} {:<4} {:<4} {:<4} \n'.format(
'slot', 'name', 'length', 'start', 'end')) 'slot', 'name', 'length', 'start', 'end'))
for index, slot in enumerate(bank_info): for index, slot in enumerate(bank_data):
self.display_text.insert(END, '{:^4} {:<22} {:<4} {:<4} {:<4} \n'.format( self.display_text.insert(END, '{:^4} {:<22} {:<4} {:<4} {:<4} \n'.format(
index, slot['name'][0:22], self.format_time_value(slot['length']), index, slot['name'][0:22], self.format_time_value(slot['length']),
self.format_time_value(slot['start']), self.format_time_value(slot['end']))) self.format_time_value(slot['start']), self.format_time_value(slot['end'])))
if self.video_driver.current_player.bank_number is '-': if self.video_driver.current_player.slot_number is '-':
self.selected_list_index = 0 self.selected_list_index = 0
else: else:
self.selected_list_index = self.video_driver.current_player.bank_number self.selected_list_index = self.video_driver.current_player.slot_number
def _load_browser(self): def _load_browser(self):
browser_list = self.data.return_browser_list() browser_list = self.data.return_browser_list()
number_of_lines_displayed = 0 number_of_lines_displayed = 0
self.display_text.insert(END, '------------------ <BROWSER> ------------------ \n') self.display_text.insert(END, '------------------ <BROWSER> ------------------ \n')
self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29) self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29)
self.display_text.insert(END, '{:40} {:5} \n'.format('path', 'bank')) self.display_text.insert(END, '{:40} {:5} \n'.format('path', 'slot'))
number_of_browser_items = len(browser_list) number_of_browser_items = len(browser_list)
for index in range(number_of_browser_items): for index in range(number_of_browser_items):
@@ -96,7 +97,7 @@ class Display(object):
break break
if index >= self.top_menu_index: if index >= self.top_menu_index:
path = browser_list[index] path = browser_list[index]
self.display_text.insert(END, '{:40} {:5} \n'.format(path['name'][0:35], path['bank'])) self.display_text.insert(END, '{:40} {:5} \n'.format(path['name'][0:35], path['slot']))
number_of_lines_displayed = number_of_lines_displayed + 1 number_of_lines_displayed = number_of_lines_displayed + 1
for index in range(self.MENU_HEIGHT - number_of_browser_items): for index in range(self.MENU_HEIGHT - number_of_browser_items):
@@ -107,14 +108,14 @@ class Display(object):
settings_list = self.data.get_settings_data() settings_list = self.data.get_settings_data()
self.display_text.insert(END, '------------------ <SETTINGS> ----------------- \n') self.display_text.insert(END, '------------------ <SETTINGS> ----------------- \n')
self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29) self.display_text.tag_add("DISPLAY_MODE", 4.19, 4.29)
self.display_text.insert(END, '{:^25} {:^20} \n'.format('SETTING', 'VALUE')) self.display_text.insert(END, '{:^23} {:^22} \n'.format('SETTING', 'VALUE'))
number_of_settings_items = len(settings_list) number_of_settings_items = len(settings_list)
for index in range(number_of_settings_items): for index in range(number_of_settings_items):
if line_count >= self.MENU_HEIGHT: if line_count >= self.MENU_HEIGHT:
break break
if index >= self.top_menu_index: if index >= self.top_menu_index:
setting = settings_list[index] setting = settings_list[index]
self.display_text.insert(END, '{:>25} {:<20} \n'.format(setting['name'], setting['value'][0:20])) self.display_text.insert(END, '{:>23} {:<22} \n'.format(setting['name'], setting['value'][0:20]))
line_count = line_count + 1 line_count = line_count + 1
for index in range(self.MENU_HEIGHT - number_of_settings_items): for index in range(self.MENU_HEIGHT - number_of_settings_items):
@@ -130,6 +131,9 @@ class Display(object):
self.message_handler.current_message[2] = False self.message_handler.current_message[2] = False
message_length = 4000 message_length = 4000
self.tk.after(message_length, self.message_handler.clear_message) self.tk.after(message_length, self.message_handler.clear_message)
elif self.message_handler.function_on:
self.display_text.insert(END, '{:^45}'.format('< FUNCTION KEY ON >'))
self.display_text.tag_add('FUNCTION', 16.0,16.0 + self.SELECTOR_WIDTH)
def _highlight_this_row(self, row): def _highlight_this_row(self, row):
self.display_text.tag_add("SELECT", self.ROW_OFFSET + row, self.display_text.tag_add("SELECT", self.ROW_OFFSET + row,
@@ -140,13 +144,13 @@ class Display(object):
self.ROW_OFFSET + self.SELECTOR_WIDTH + row) self.ROW_OFFSET + self.SELECTOR_WIDTH + row)
def _get_info_for_player(self): def _get_info_for_player(self):
now_bank, now_status, next_bank, next_status, position, video_length, start, end = self.video_driver.get_info_for_player_display() now_slot, now_status, next_slot, next_status, position, video_length, start, end = self.video_driver.get_info_for_player_display()
banner = self.create_video_display_banner(start, end, video_length, position) banner = self.create_video_display_banner(start, end, video_length, position)
time_been = self.format_time_value(position - start) time_been = self.format_time_value(position - start)
time_left = self.format_time_value(end - position) time_left = self.format_time_value(end - position)
return self.VIDEO_DISPLAY_BANNER_TEXT.format(time_been, banner, time_left), \ return self.VIDEO_DISPLAY_BANNER_TEXT.format(time_been, banner, time_left), \
self.VIDEO_DISPLAY_TEXT.format(now_bank, now_status, next_bank, next_status) self.VIDEO_DISPLAY_TEXT.format(now_slot, now_status, next_slot, next_status)
@staticmethod @staticmethod
def create_video_display_banner(start, end, length, position): def create_video_display_banner(start, end, length, position):

View File

@@ -7,10 +7,11 @@ class MessageHandler(object):
self.current_message = [None, None, None] self.current_message = [None, None, None]
self.number_of_messages = 0 self.number_of_messages = 0
self.logger = self.setup_logging() self.logger = self.setup_logging()
self.function_on = False
def setup_logging(self): def setup_logging(self):
logger = logging.getLogger('logfile') logger = logging.getLogger('logfile')
current_dir = data_centre.data.get_the_current_dir_path() current_dir = data_centre.data.get_the_current_dir_path() #TODO : this needs to be improved
hdlr = logging.FileHandler(current_dir + 'logfile.log') hdlr = logging.FileHandler(current_dir + 'logfile.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter) hdlr.setFormatter(formatter)

View File

@@ -31,7 +31,7 @@ display = Display(tk, video_driver, message_handler, data)
# setup the actions # setup the actions
actions = Actions(tk, message_handler, data, video_driver, display) actions = Actions(tk, message_handler, data, video_driver, display)
numpad_input = NumpadInput(display, actions) numpad_input = NumpadInput(message_handler, display, actions)
frame.pack() frame.pack()
tk.attributes("-fullscreen", True) tk.attributes("-fullscreen", True)

View File

@@ -1,7 +1,8 @@
class NumpadInput(object): class NumpadInput(object):
def __init__(self, display, actions): def __init__(self, message_handler, display, actions):
self.message_handler = message_handler
self.display = display self.display = display
self.actions = actions self.actions = actions
self.bind_actions() self.bind_actions()
@@ -23,13 +24,29 @@ class NumpadInput(object):
self.on_slash_press() self.on_slash_press()
elif event.char == '.': elif event.char == '.':
self.on_dot_press() self.on_dot_press()
elif event.char == '0':
self.on_0_press()
elif event.char == '1':
self.on_1_press()
elif event.char == '2':
self.on_2_press()
elif event.char == '3':
self.on_3_press()
elif event.char == '4':
self.on_4_press()
elif event.char == '5':
self.on_5_press()
elif event.char == '6':
self.on_6_press()
elif event.char == '7':
self.on_7_press()
elif event.char == '8':
self.on_8_press()
elif event.char == '9':
self.on_9_press()
if event.char is not '.': if event.char is not '.':
self.display.refresh_display() self.display.refresh_display()
# for bank in range(10):
# if event.char == str(bank):
# self.actions.load_this_bank_into_next_player(bank)
def on_backspace_press(self, event): def on_backspace_press(self, event):
if self.display.display_mode == 'BROWSER': if self.display.display_mode == 'BROWSER':
self.actions.enter_on_browser_selection() self.actions.enter_on_browser_selection()
@@ -62,8 +79,68 @@ class NumpadInput(object):
self.actions.cycle_display_mode() self.actions.cycle_display_mode()
def on_slash_press(self): def on_slash_press(self):
pass self.actions.toggle_function()
def on_dot_press(self): def on_dot_press(self):
self.actions.quit_the_program() self.actions.quit_the_program()
def on_0_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(0)
def on_1_press(self):
if self.message_handler.function_on:
self.actions.set_playing_sample_start_to_current_duration()
else:
self.actions.load_this_slot_into_next_player(1)
def on_2_press(self):
if self.message_handler.function_on:
self.actions.clear_playing_sample_start_time()
else:
self.actions.load_this_slot_into_next_player(2)
def on_3_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(3)
def on_4_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(4)
def on_5_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(5)
def on_6_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(6)
def on_7_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(7)
def on_8_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(8)
def on_9_press(self):
if self.message_handler.function_on:
pass
else:
self.actions.load_this_slot_into_next_player(9)

View File

@@ -65,7 +65,7 @@ class VideoDriver(object):
def get_info_for_player_display(self): def get_info_for_player_display(self):
if self.has_omx: if self.has_omx:
return self.current_player.bank_number, self.current_player.status, self.next_player.bank_number, \ return self.current_player.slot_number, self.current_player.status, self.next_player.slot_number, \
self.next_player.status, self.current_player.get_position(), self.current_player.length, \ self.next_player.status, self.current_player.get_position(), self.current_player.length, \
self.current_player.start, self.current_player.end self.current_player.start, self.current_player.end
else: else:

View File

@@ -17,7 +17,7 @@ class video_player:
self.omx_running = False self.omx_running = False
self.status = 'N/A' self.status = 'N/A'
self.duration = 0.0 self.duration = 0.0
self.bank_number = '-' self.slot_number = '-'
self.start = -1.0 self.start = -1.0
self.end = -1.0 self.end = -1.0
self.length = 0.0 self.length = 0.0
@@ -92,7 +92,7 @@ class video_player:
self.start = next_context['start'] self.start = next_context['start']
self.end = next_context['end'] self.end = next_context['end']
self.length = self.end - self.start self.length = self.end - self.start
self.bank_number = next_context['bank_number'] self.slot_number = next_context['slot_number']
def toggle_pause(self): def toggle_pause(self):
self.omx_player.play_pause() self.omx_player.play_pause()
@@ -132,7 +132,7 @@ class fake_video_player:
self.omx_running = False self.omx_running = False
self.status = 'N/A' self.status = 'N/A'
self.duration = 0 self.duration = 0
self.bank_number = '-' self.slot_number = '-'
self.start = -1 self.start = -1
self.end = -1 self.end = -1
self.length = 0 self.length = 0