mpf 0.57.0.dev32__tar.gz → 0.57.0.dev33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1050) hide show
  1. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/PKG-INFO +1 -1
  2. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/_version.py +1 -1
  3. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/game.py +2 -2
  4. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_spec.yaml +3 -1
  5. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service/code/service.py +137 -0
  6. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service_dmd/config/service_dmd.yaml +15 -0
  7. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/aud.py +26 -21
  8. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/base.py +5 -1
  9. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast.py +4 -1
  10. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_audio.py +70 -67
  11. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_port_detector.py +9 -2
  12. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_coil.py +1 -0
  13. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/auditor.py +1 -1
  14. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfTestCase.py +2 -1
  15. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/auditor/modes/base/config/base.yaml +2 -0
  16. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Auditor.py +12 -0
  17. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Audio.py +37 -32
  18. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ServiceMode.py +8 -0
  19. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf.egg-info/PKG-INFO +1 -1
  20. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.bandit +0 -0
  21. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.coveragerc +0 -0
  22. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.github/dependabot.yml +0 -0
  23. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.github/workflows/build_wheels.yml +0 -0
  24. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.github/workflows/run_tests.yml +0 -0
  25. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.gitignore +0 -0
  26. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/.prospector.yaml +0 -0
  27. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/AUTHORS.md +0 -0
  28. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/CONTRIBUTING.md +0 -0
  29. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/LICENSE.md +0 -0
  30. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/Makefile +0 -0
  31. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/README.md +0 -0
  32. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/RELEASE.md +0 -0
  33. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/Makefile +0 -0
  34. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-114x114.png +0 -0
  35. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-120x120.png +0 -0
  36. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-144x144.png +0 -0
  37. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-152x152.png +0 -0
  38. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-57x57.png +0 -0
  39. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-60x60.png +0 -0
  40. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-72x72.png +0 -0
  41. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/apple-touch-icon-76x76.png +0 -0
  42. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/favicon-128.png +0 -0
  43. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/favicon-16x16.png +0 -0
  44. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/favicon-196x196.png +0 -0
  45. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/favicon-32x32.png +0 -0
  46. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/favicon-96x96.png +0 -0
  47. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/favicon.ico +0 -0
  48. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/mstile-144x144.png +0 -0
  49. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/mstile-150x150.png +0 -0
  50. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/mstile-310x150.png +0 -0
  51. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/mstile-310x310.png +0 -0
  52. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/icons/mstile-70x70.png +0 -0
  53. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/mpf-logo-200.png +0 -0
  54. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/mpf-logo-tiny.png +0 -0
  55. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/images/mpf-logo-tiny@2x.png +0 -0
  56. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_static/mpf.css +0 -0
  57. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/config_players.rst +0 -0
  58. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/config_players_overview.rst +0 -0
  59. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/devices.rst +0 -0
  60. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/devices_overview.rst +0 -0
  61. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/index.rst +0 -0
  62. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/machine.rst +0 -0
  63. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/machine_overview.rst +0 -0
  64. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/misc.rst +0 -0
  65. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/misc_overview.rst +0 -0
  66. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/modes.rst +0 -0
  67. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/modes_overview.rst +0 -0
  68. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/platforms.rst +0 -0
  69. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/platforms_overview.rst +0 -0
  70. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/self.machine.rst +0 -0
  71. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/tests.rst +0 -0
  72. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/_templates/tests_overview.rst +0 -0
  73. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/ball_end.rst +0 -0
  74. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/ball_start.rst +0 -0
  75. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/device.rst +0 -0
  76. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/error.rst +0 -0
  77. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/goodbye.rst +0 -0
  78. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/hello.rst +0 -0
  79. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/index.rst +0 -0
  80. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/machine_variable.rst +0 -0
  81. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/mode_start.rst +0 -0
  82. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/mode_stop.rst +0 -0
  83. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/monitor_start.rst +0 -0
  84. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/monitor_stop.rst +0 -0
  85. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/player_added.rst +0 -0
  86. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/player_turn_start.rst +0 -0
  87. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/player_variable.rst +0 -0
  88. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/register_trigger.rst +0 -0
  89. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/remove_trigger.rst +0 -0
  90. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/reset.rst +0 -0
  91. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/reset_complete.rst +0 -0
  92. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/switch.rst +0 -0
  93. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/bcp/trigger.rst +0 -0
  94. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/code/index.rst +0 -0
  95. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/code/machine_code.rst +0 -0
  96. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/code/mode_code.rst +0 -0
  97. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/conf.py +0 -0
  98. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/Send variables via self.machine.events.post.rst +0 -0
  99. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/dev_environment.rst +0 -0
  100. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/event_annotations.rst +0 -0
  101. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/hardware.rst +0 -0
  102. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/index.rst +0 -0
  103. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/mc.widget_player.rst +0 -0
  104. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/dev/plugins.rst +0 -0
  105. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/functions/index.rst +0 -0
  106. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/functions/machine_variables.rst +0 -0
  107. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/functions/player_variables.rst +0 -0
  108. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/genindex.rst +0 -0
  109. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/images/custom_mode_code.png +0 -0
  110. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/images/scriptlet.png +0 -0
  111. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/images/test_classes.png +0 -0
  112. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/index.rst +0 -0
  113. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/make.bat +0 -0
  114. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/overview/boot_process.rst +0 -0
  115. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/overview/files.rst +0 -0
  116. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/overview/index.rst +0 -0
  117. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/overview/installation.rst +0 -0
  118. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/overview/yaml.rst +0 -0
  119. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/requirements.txt +0 -0
  120. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/fuzz_testing.rst +0 -0
  121. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/index.rst +0 -0
  122. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/running_mpf_tests.rst +0 -0
  123. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/tutorial/1.rst +0 -0
  124. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/tutorial/2.rst +0 -0
  125. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/writing_machine_tests.rst +0 -0
  126. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/docs/testing/writing_mpf_tests.rst +0 -0
  127. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/get_version.py +0 -0
  128. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/__init__.py +0 -0
  129. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/__main__.py +0 -0
  130. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/assets/__init__.py +0 -0
  131. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/assets/show.py +0 -0
  132. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/__init__.py +0 -0
  133. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/events/config/config.yaml +0 -0
  134. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/shows/config/config.yaml +0 -0
  135. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/shows/shows/minimal_light_show.yaml +0 -0
  136. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/shows/shows/minimal_light_show_token.yaml +0 -0
  137. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/shows/shows/multi_step_tags.yaml +0 -0
  138. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/shows/shows/single_step_tag.yaml +0 -0
  139. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/machine_files/switch_hits/config/config.yaml +0 -0
  140. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/test_benchmark_events.py +0 -0
  141. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/test_benchmark_light_shows.py +0 -0
  142. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/benchmarks/test_benchmark_switch_hits.py +0 -0
  143. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/__init__.py +0 -0
  144. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/both.py +0 -0
  145. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/build.py +0 -0
  146. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/core.py +0 -0
  147. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/create_config.py +0 -0
  148. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/diagnosis.py +0 -0
  149. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/hardware.py +0 -0
  150. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/logging_formatters.py +0 -0
  151. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/service.py +0 -0
  152. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/test.py +0 -0
  153. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/commands/wire.py +0 -0
  154. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/__init__.py +0 -0
  155. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/bcp_plugin_player.py +0 -0
  156. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/blinkenlight_player.py +0 -0
  157. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/block_event_player.py +0 -0
  158. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/coil_player.py +0 -0
  159. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/device_config_player.py +0 -0
  160. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/event_player.py +0 -0
  161. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/flasher_player.py +0 -0
  162. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/flat_config_player.py +0 -0
  163. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/hardware_sound_player.py +0 -0
  164. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/light_player.py +0 -0
  165. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/plugin_player.py +0 -0
  166. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/queue_event_player.py +0 -0
  167. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/queue_relay_player.py +0 -0
  168. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/random_event_player.py +0 -0
  169. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/score_queue_player.py +0 -0
  170. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/segment_display_player.py +0 -0
  171. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/show_player.py +0 -0
  172. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/config_players/variable_player.py +0 -0
  173. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/__init__.py +0 -0
  174. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/assets.py +0 -0
  175. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/async_mode.py +0 -0
  176. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/ball_controller.py +0 -0
  177. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/ball_search.py +0 -0
  178. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/__init__.py +0 -0
  179. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp.py +0 -0
  180. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp_client.py +0 -0
  181. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp_interface.py +0 -0
  182. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp_pickle_client.py +0 -0
  183. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp_server.py +0 -0
  184. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp_socket_client.py +0 -0
  185. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/bcp/bcp_transport.py +0 -0
  186. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/case_insensitive_dict.py +0 -0
  187. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/clock.py +0 -0
  188. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/config_loader.py +0 -0
  189. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/config_player.py +0 -0
  190. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/config_processor.py +0 -0
  191. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/config_spec_loader.py +0 -0
  192. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/config_validator.py +0 -0
  193. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/crash_reporter.py +0 -0
  194. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/custom_code.py +0 -0
  195. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/data_manager.py +0 -0
  196. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/delays.py +0 -0
  197. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/device.py +0 -0
  198. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/device_manager.py +0 -0
  199. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/device_monitor.py +0 -0
  200. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/enable_disable_mixin.py +0 -0
  201. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/events.py +0 -0
  202. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/file_interface.py +0 -0
  203. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/file_manager.py +0 -0
  204. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/light_controller.py +0 -0
  205. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/logging.py +0 -0
  206. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/machine.py +0 -0
  207. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/machine_vars.py +0 -0
  208. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/mode.py +0 -0
  209. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/mode_controller.py +0 -0
  210. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/mode_device.py +0 -0
  211. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/mpf_controller.py +0 -0
  212. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/placeholder_manager.py +0 -0
  213. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/platform.py +0 -0
  214. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/platform_batch_light_system.py +0 -0
  215. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/platform_controller.py +0 -0
  216. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/player.py +0 -0
  217. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/randomizer.py +0 -0
  218. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/rgb_color.py +0 -0
  219. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/rgba_color.py +0 -0
  220. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/segment_mappings.py +0 -0
  221. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/service_controller.py +0 -0
  222. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/settings_controller.py +0 -0
  223. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/show_controller.py +0 -0
  224. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/switch_controller.py +0 -0
  225. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/system_wide_device.py +0 -0
  226. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/text_ui.py +0 -0
  227. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/core/utility_functions.py +0 -0
  228. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/__init__.py +0 -0
  229. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/accelerometer.py +0 -0
  230. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/achievement.py +0 -0
  231. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/achievement_group.py +0 -0
  232. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/autofire.py +0 -0
  233. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/__init__.py +0 -0
  234. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/ball_count_handler.py +0 -0
  235. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/ball_device.py +0 -0
  236. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/ball_device_ejector.py +0 -0
  237. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/ball_device_state_handler.py +0 -0
  238. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/default_ball_search.py +0 -0
  239. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/enable_coil_ejector.py +0 -0
  240. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/entrance_switch_counter.py +0 -0
  241. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/event_ejector.py +0 -0
  242. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/hold_coil_ejector.py +0 -0
  243. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/incoming_balls_handler.py +0 -0
  244. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/outgoing_balls_handler.py +0 -0
  245. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/physical_ball_counter.py +0 -0
  246. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/pulse_coil_ejector.py +0 -0
  247. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_device/switch_counter.py +0 -0
  248. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_hold.py +0 -0
  249. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_routing.py +0 -0
  250. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/ball_save.py +0 -0
  251. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/blinkenlight.py +0 -0
  252. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/combo_switch.py +0 -0
  253. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/device_mixins.py +0 -0
  254. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/digital_output.py +0 -0
  255. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/digital_score_reel.py +0 -0
  256. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/diverter.py +0 -0
  257. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/dmd.py +0 -0
  258. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/driver.py +0 -0
  259. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/drop_target.py +0 -0
  260. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/dual_wound_coil.py +0 -0
  261. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/extra_ball.py +0 -0
  262. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/extra_ball_group.py +0 -0
  263. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/flipper.py +0 -0
  264. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/hardware_sound_system.py +0 -0
  265. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/kickback.py +0 -0
  266. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/light.py +0 -0
  267. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/light_group.py +0 -0
  268. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/logic_blocks.py +0 -0
  269. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/magnet.py +0 -0
  270. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/motor.py +0 -0
  271. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/multiball.py +0 -0
  272. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/multiball_lock.py +0 -0
  273. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/playfield.py +0 -0
  274. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/playfield_transfer.py +0 -0
  275. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/power_supply_unit.py +0 -0
  276. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/rgb_dmd.py +0 -0
  277. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/score_queue.py +0 -0
  278. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/score_reel.py +0 -0
  279. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/score_reel_controller.py +0 -0
  280. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/score_reel_group.py +0 -0
  281. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/segment_display/__init__.py +0 -0
  282. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/segment_display/segment_display.py +0 -0
  283. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/segment_display/segment_display_text.py +0 -0
  284. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/segment_display/text_stack_entry.py +0 -0
  285. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/segment_display/transition_manager.py +0 -0
  286. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/segment_display/transitions.py +0 -0
  287. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/sequence_shot.py +0 -0
  288. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/servo.py +0 -0
  289. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/shot.py +0 -0
  290. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/shot_group.py +0 -0
  291. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/shot_profile.py +0 -0
  292. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/show_queue.py +0 -0
  293. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/speedometer.py +0 -0
  294. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/spinner.py +0 -0
  295. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/state_machine.py +0 -0
  296. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/stepper.py +0 -0
  297. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/switch.py +0 -0
  298. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/timed_switch.py +0 -0
  299. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/devices/timer.py +0 -0
  300. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/exceptions/__init__.py +0 -0
  301. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/exceptions/base_error.py +0 -0
  302. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/exceptions/config_file_error.py +0 -0
  303. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/exceptions/driver_limits_error.py +0 -0
  304. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/exceptions/runtime_error.py +0 -0
  305. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/file_interfaces/__init__.py +0 -0
  306. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/file_interfaces/pickle_interface.py +0 -0
  307. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/file_interfaces/yaml_interface.py +0 -0
  308. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/__init__.py +0 -0
  309. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/attract/__init__.py +0 -0
  310. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/attract/code/__init__.py +0 -0
  311. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/attract/code/attract.py +0 -0
  312. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/attract/config/attract.yaml +0 -0
  313. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/bonus/__init__.py +0 -0
  314. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/bonus/code/__init__.py +0 -0
  315. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/bonus/code/bonus.py +0 -0
  316. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/bonus/config/bonus.yaml +0 -0
  317. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/carousel/__init__.py +0 -0
  318. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/carousel/code/__init__.py +0 -0
  319. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/carousel/code/carousel.py +0 -0
  320. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/credits/__init__.py +0 -0
  321. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/credits/code/__init__.py +0 -0
  322. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/credits/code/credits.py +0 -0
  323. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/credits/config/credits.yaml +0 -0
  324. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/game/__init__.py +0 -0
  325. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/game/code/__init__.py +0 -0
  326. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/game/code/game.py +0 -0
  327. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/game/config/game.yaml +0 -0
  328. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/__init__.py +0 -0
  329. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/code/__init__.py +0 -0
  330. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/code/high_score.py +0 -0
  331. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/config/high_score.yaml +0 -0
  332. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/images/back_arrow_7x7.png +0 -0
  333. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/images/back_arrow_7x7_selected.png +0 -0
  334. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/images/end_11x7.png +0 -0
  335. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/high_score/images/end_11x7_selected.png +0 -0
  336. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/match/code/__init__.py +0 -0
  337. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/match/code/match.py +0 -0
  338. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/match/config/match.yaml +0 -0
  339. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service/__init__.py +0 -0
  340. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service/code/__init__.py +0 -0
  341. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service/config/service.yaml +0 -0
  342. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service/sounds/power_off.ogg +0 -0
  343. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service/sounds/switch_hit.ogg +0 -0
  344. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/service_segment_display/config/service_segment_display.yaml +0 -0
  345. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/tilt/__init__.py +0 -0
  346. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/tilt/code/__init__.py +0 -0
  347. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/tilt/code/tilt.py +0 -0
  348. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/modes/tilt/config/tilt.yaml +0 -0
  349. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/mpfconfig.yaml +0 -0
  350. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/parsers/__init__.py +0 -0
  351. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/parsers/event_reference_parser.py +0 -0
  352. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/parsers/special_events.py +0 -0
  353. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/__init__.py +0 -0
  354. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/base_serial_communicator.py +0 -0
  355. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/driver_light_platform.py +0 -0
  356. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fadecandy.py +0 -0
  357. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/TODO.md +0 -0
  358. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/__init__.py +0 -0
  359. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/dmd.py +0 -0
  360. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/emu.py +0 -0
  361. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/exp.py +0 -0
  362. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/net_nano.py +0 -0
  363. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/net_neuron.py +0 -0
  364. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/net_retro.py +0 -0
  365. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/rgb.py +0 -0
  366. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/communicators/seg.py +0 -0
  367. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_defines.py +0 -0
  368. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_dmd.py +0 -0
  369. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_driver.py +0 -0
  370. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_exp_board.py +0 -0
  371. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_gi.py +0 -0
  372. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_io_board.py +0 -0
  373. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_led.py +0 -0
  374. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_light.py +0 -0
  375. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_segment_display.py +0 -0
  376. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_servo.py +0 -0
  377. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/fast/fast_switch.py +0 -0
  378. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/i2c_servo_controller.py +0 -0
  379. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/__init__.py +0 -0
  380. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/accelerometer_platform_interface.py +0 -0
  381. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/dmd_platform.py +0 -0
  382. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/driver_platform_interface.py +0 -0
  383. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/hardware_sound_platform_interface.py +0 -0
  384. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/i2c_platform_interface.py +0 -0
  385. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/light_platform_interface.py +0 -0
  386. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/segment_display_platform_interface.py +0 -0
  387. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/servo_platform_interface.py +0 -0
  388. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/stepper_platform_interface.py +0 -0
  389. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/interfaces/switch_platform_interface.py +0 -0
  390. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/light_segment_displays.py +0 -0
  391. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/lisy/__init__.py +0 -0
  392. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/lisy/defines.py +0 -0
  393. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/lisy/lisy.py +0 -0
  394. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/mma8451.py +0 -0
  395. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/mypinballs/__init__.py +0 -0
  396. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/mypinballs/mypinballs.py +0 -0
  397. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/openpixel.py +0 -0
  398. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/__init__.py +0 -0
  399. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp.py +0 -0
  400. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_incand.py +0 -0
  401. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_modern_lights.py +0 -0
  402. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_rs232_intf.py +0 -0
  403. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_serial_communicator.py +0 -0
  404. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_servo.py +0 -0
  405. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/opp/opp_switch.py +0 -0
  406. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/osc.py +0 -0
  407. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/p3_roc.py +0 -0
  408. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/p_roc.py +0 -0
  409. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/p_roc_common.py +0 -0
  410. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/p_roc_devices.py +0 -0
  411. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pin2dmd.py +0 -0
  412. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/osx/pinproc.so +0 -0
  413. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp310-win32.pyd +0 -0
  414. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp310-win_amd64.pyd +0 -0
  415. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp311-win32.pyd +0 -0
  416. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp311-win_amd64.pyd +0 -0
  417. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp312-win32.pyd +0 -0
  418. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp312-win_amd64.pyd +0 -0
  419. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp38-win32.pyd +0 -0
  420. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp38-win_amd64.pyd +0 -0
  421. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp39-win32.pyd +0 -0
  422. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pinproc/windows/pinproc.cp39-win_amd64.pyd +0 -0
  423. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/__init__.py +0 -0
  424. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone.py +0 -0
  425. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_coil.py +0 -0
  426. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_extension.py +0 -0
  427. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_lights.py +0 -0
  428. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_lightshow.py +0 -0
  429. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_serial_communicator.py +0 -0
  430. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_servo.py +0 -0
  431. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pkone/pkone_switch.py +0 -0
  432. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pololu/__init__.py +0 -0
  433. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pololu/pololu_tic.py +0 -0
  434. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pololu/pololu_ticcmd_wrapper.py +0 -0
  435. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/pololu_maestro.py +0 -0
  436. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/rpi/__init__.py +0 -0
  437. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/rpi/rpi.py +0 -0
  438. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/rpi_dmd.py +0 -0
  439. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/smart_virtual.py +0 -0
  440. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/smartmatrix.py +0 -0
  441. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/smbus2.py +0 -0
  442. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/snux.py +0 -0
  443. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/spi_bit_bang.py +0 -0
  444. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/spike/__init__.py +0 -0
  445. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/spike/spike.py +0 -0
  446. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/spike/spike_defines.py +0 -0
  447. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/step_stick.py +0 -0
  448. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/system11.py +0 -0
  449. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/trinamics/README +0 -0
  450. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/trinamics/TMCL.py +0 -0
  451. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/trinamics/__init__.py +0 -0
  452. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/trinamics_steprocker.py +0 -0
  453. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/virtual.py +0 -0
  454. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/virtual_pinball/__init__.py +0 -0
  455. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/virtual_pinball/virtual_pinball.py +0 -0
  456. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/__init__.py +0 -0
  457. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/generate.py +0 -0
  458. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/platform_pb2.py +0 -0
  459. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py +0 -0
  460. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/protobuf/platform.proto +0 -0
  461. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/service.py +0 -0
  462. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/test_client.py +0 -0
  463. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/test_server.py +0 -0
  464. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/platforms/visual_pinball_engine/visual_pinball_engine.py +0 -0
  465. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/__init__.py +0 -0
  466. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/info_lights.py +0 -0
  467. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/switch_player.py +0 -0
  468. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/twitch/__init__.py +0 -0
  469. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/twitch/twitch_client.py +0 -0
  470. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/twitch_bot.py +0 -0
  471. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/plugins/virtual_segment_display_connector.py +0 -0
  472. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfBcpTestCase.py +0 -0
  473. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfDocTestCase.py +0 -0
  474. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfFakeGameTestCase.py +0 -0
  475. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfGameTestCase.py +0 -0
  476. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfIntegrationDocTestCase.py +0 -0
  477. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/MpfMachineTestCase.py +0 -0
  478. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/README.md +0 -0
  479. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/TestDataManager.py +0 -0
  480. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/__init__.py +0 -0
  481. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/loop.py +0 -0
  482. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/accelerometer/config/config.yaml +0 -0
  483. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/achievement/config/config.yaml +0 -0
  484. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/achievement/modes/auto_select/config/auto_select.yaml +0 -0
  485. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/achievement/modes/base/config/base.yaml +0 -0
  486. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/achievement/modes/mode1/config/mode1.yaml +0 -0
  487. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/apc/config/config.yaml +0 -0
  488. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/config/test_asset_loading.yaml +0 -0
  489. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/modes/mode1/config/mode1.yaml +0 -0
  490. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/custom1/show8.yaml +0 -0
  491. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/mode_start/show9.yaml +0 -0
  492. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/on_demand/show10.yaml +0 -0
  493. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/preload/show7.yaml +0 -0
  494. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/show6.yaml +0 -0
  495. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/custom1/show11.yaml +0 -0
  496. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/custom1/show13.yaml +0 -0
  497. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/on_demand/show5.yaml +0 -0
  498. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/preload/show4.yaml +0 -0
  499. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/preload/subfolder/show4b.yaml +0 -0
  500. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/show1.yaml +0 -0
  501. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/show12.yaml +0 -0
  502. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/show2.yaml +0 -0
  503. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/asset_manager/shows/show3.yaml +0 -0
  504. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/auditor/config/config.yaml +0 -0
  505. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/autofire/config/config.yaml +0 -0
  506. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_controller/config/config.yaml +0 -0
  507. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_controller/config/regression.yaml +0 -0
  508. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device.yaml +0 -0
  509. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_auto_manual_plunger.yaml +0 -0
  510. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_event_confirmation.yaml +0 -0
  511. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_event_ejector.yaml +0 -0
  512. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_jam_switch.yaml +0 -0
  513. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_jam_switch_initial.yaml +0 -0
  514. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_manual_with_target.yaml +0 -0
  515. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_no_plunger_switch.yaml +0 -0
  516. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_routing.yaml +0 -0
  517. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_switch_confirmation.yaml +0 -0
  518. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_ball_device_trigger_events.yaml +0 -0
  519. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_enable_coil.yaml +0 -0
  520. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_enable_coil_multiple.yaml +0 -0
  521. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_gottlieb_trough.yaml +0 -0
  522. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_gottlieb_trough_with_initial_balls.yaml +0 -0
  523. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_hold_coil.yaml +0 -0
  524. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_jam_and_ball_left.yaml +0 -0
  525. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_modern_trough_plunger_setup.yaml +0 -0
  526. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_player_controlled_eject.yaml +0 -0
  527. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_playfield_lock.yaml +0 -0
  528. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_pulse_eject.yaml +0 -0
  529. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_single_device.yaml +0 -0
  530. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_system_11_trough.yaml +0 -0
  531. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_system_11_trough_startup.yaml +0 -0
  532. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/test_too_long_exit_count_delay.yaml +0 -0
  533. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/trough_entrance_switch.yaml +0 -0
  534. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_device/config/trough_entrance_switch_initial_balls.yaml +0 -0
  535. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_holds/config/test_ball_holds.yaml +0 -0
  536. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_holds/modes/mode1/config/mode1.yaml +0 -0
  537. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_routing/config/config.yaml +0 -0
  538. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_routing/modes/mode1/config/mode1.yaml +0 -0
  539. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_save/config/config.yaml +0 -0
  540. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_save/modes/mode1/config/mode1.yaml +0 -0
  541. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_save/modes/mode2/config/mode2.yaml +0 -0
  542. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_search/config/config.yaml +0 -0
  543. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_search/config/config_ball_device.yaml +0 -0
  544. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_search/config/config_with_balls.yaml +0 -0
  545. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_search/config/mechanical_eject.yaml +0 -0
  546. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_search/config/missing_initial.yaml +0 -0
  547. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/ball_search/config/no_eject.yaml +0 -0
  548. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bcp/config/config.yaml +0 -0
  549. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bcp/config/multiple_connections_config.yaml +0 -0
  550. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bcp/modes/mode1/config/mode1.yaml +0 -0
  551. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bcp/modes/mode2/config/mode2.yaml +0 -0
  552. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blinkenlight/config/config.yaml +0 -0
  553. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blinkenlight/modes/mode1/config/mode1.yaml +0 -0
  554. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blinkenlight/modes/mode2/config/mode2.yaml +0 -0
  555. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blocking_events/config/config.yaml +0 -0
  556. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blocking_events/modes/mode1/config/mode1.yaml +0 -0
  557. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blocking_events/modes/mode2/config/mode2.yaml +0 -0
  558. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/blocking_events/modes/mode3/config/mode3.yaml +0 -0
  559. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus/config/config.yaml +0 -0
  560. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus/modes/bonus/config/bonus.yaml +0 -0
  561. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus/modes/mode1/config/mode1.yaml +0 -0
  562. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_additional_events/config/config.yaml +0 -0
  563. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_additional_events/modes/bonus/config/bonus.yaml +0 -0
  564. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_additional_events/modes/mode1/config/mode1.yaml +0 -0
  565. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_dynamic_keep_multiplier/config/config.yaml +0 -0
  566. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_dynamic_keep_multiplier/modes/bonus/config/bonus.yaml +0 -0
  567. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_dynamic_keep_multiplier/modes/mode1/config/mode1.yaml +0 -0
  568. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_no_keep_multiplier/config/config.yaml +0 -0
  569. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_no_keep_multiplier/modes/bonus/config/bonus.yaml +0 -0
  570. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/bonus_no_keep_multiplier/modes/mode1/config/mode1.yaml +0 -0
  571. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/carousel/config/config.yaml +0 -0
  572. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/carousel/modes/blocking_carousel/config/blocking_carousel.yaml +0 -0
  573. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/carousel/modes/carousel/config/carousel.yaml +0 -0
  574. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/carousel/modes/conditional_carousel/config/conditional_carousel.yaml +0 -0
  575. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/carousel/modes/second_carousel/config/second_carousel.yaml +0 -0
  576. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/coil_player/config/coil_player.yaml +0 -0
  577. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/coil_player/modes/mode1/config/mode1.yaml +0 -0
  578. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/combo_switches/config/combo_switches.yaml +0 -0
  579. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/combo_switches/modes/mode1/config/mode1.yaml +0 -0
  580. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_errors/broken_show/config/show.yaml +0 -0
  581. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_errors/broken_show/shows/broken_show.yaml +0 -0
  582. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_interface/config/test_config_interface.yaml +0 -0
  583. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_interface/config/test_config_interface_missing_version.yaml +0 -0
  584. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_interface/config/test_config_interface_old_version.yaml +0 -0
  585. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_loader/config/config.yaml +0 -0
  586. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_loader/modes/game/config/game.yaml +0 -0
  587. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_loader/modes/mode1/config/mode1.yaml +0 -0
  588. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_loader/modes/mode1/shows/mode1_show.yaml +0 -0
  589. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_loader/modes/mode2/config/mode2.yaml +0 -0
  590. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_loader/shows/show1.yaml +0 -0
  591. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_players/config/test_config_players.yaml +0 -0
  592. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_players/modes/mode1/config/mode1.yaml +0 -0
  593. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_players/modes/mode1/shows/mode1_show.yaml +0 -0
  594. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_players/modes/mode2/config/mode2.yaml +0 -0
  595. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_players/shows/show1.yaml +0 -0
  596. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_processor/typo.yaml +0 -0
  597. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_processor/working.yaml +0 -0
  598. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/config_processor/working_subconfig.yaml +0 -0
  599. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/counters/config/config.yaml +0 -0
  600. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/counters/modes/mode1/config/mode1.yaml +0 -0
  601. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/credits/config/config.yaml +0 -0
  602. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/credits/config/config_credit_tiers.yaml +0 -0
  603. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/credits/config/config_freeplay.yaml +0 -0
  604. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/credits/config/config_inhibit.yaml +0 -0
  605. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/credits/modes/credits/config/config.yaml +0 -0
  606. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/custom_code/code/__init__.py +0 -0
  607. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/custom_code/code/test_code.py +0 -0
  608. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/custom_code/config/config.yaml +0 -0
  609. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/data_manager/config/config.yaml +0 -0
  610. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/device/config/coils.yaml +0 -0
  611. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/device/config/config.yaml +0 -0
  612. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/device/config/config_dual_wound_coil.yaml +0 -0
  613. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/device_collection/config/test_device_collection.yaml +0 -0
  614. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/digital_output/config/config.yaml +0 -0
  615. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/digital_score_reels/config/test_digital_score_reels.yaml +0 -0
  616. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/config.yaml +0 -0
  617. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/diverter_with_activation_events.yaml +0 -0
  618. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/only_events_no_coils.yaml +0 -0
  619. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_activation_switch_and_eject_confirm_switch.yaml +0 -0
  620. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_delayed_eject.yaml +0 -0
  621. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_diverter_auto_disable.yaml +0 -0
  622. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_diverter_dual_wound_coil.yaml +0 -0
  623. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_diverter_with_switch.yaml +0 -0
  624. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_eject_to_oposide_sides.yaml +0 -0
  625. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_eject_to_oposide_sides2.yaml +0 -0
  626. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_hold_activation_time.yaml +0 -0
  627. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_hold_no_activation_time.yaml +0 -0
  628. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_missing_ball_at_source.yaml +0 -0
  629. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/diverter/config/test_pulsed_activation_time.yaml +0 -0
  630. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/dmd/config/testDmd.yaml +0 -0
  631. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/dmd/config/testRgbDmd.yaml +0 -0
  632. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/drop_targets/config/test_drop_targets.yaml +0 -0
  633. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/drop_targets/config/test_multiple_drop_resets_on_startup.yaml +0 -0
  634. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/drop_targets/modes/mode1/config/mode1.yaml +0 -0
  635. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_manager/config/test_event_manager.yaml +0 -0
  636. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_manager/modes/game_mode/config/game_mode.yaml +0 -0
  637. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_manager/modes/test_mode/config/test_mode.yaml +0 -0
  638. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_players/config/test_event_player.yaml +0 -0
  639. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_players/config/test_queue_event_player.yaml +0 -0
  640. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_players/config/test_random_event_player.yaml +0 -0
  641. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_players/modes/mode1/config/mode1.yaml +0 -0
  642. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/event_players/modes/mode2/config/mode2.yaml +0 -0
  643. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/extra_ball/config/config.yaml +0 -0
  644. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/extra_ball/modes/mode1/config/mode1.yaml +0 -0
  645. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/audio.yaml +0 -0
  646. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/audio2.yaml +0 -0
  647. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/dmd.yaml +0 -0
  648. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/error_lights.yaml +0 -0
  649. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/exp.yaml +0 -0
  650. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/nano.yaml +0 -0
  651. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/neuron.yaml +0 -0
  652. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/retro.yaml +0 -0
  653. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/fast/config/seg.yaml +0 -0
  654. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/flippers/config/config.yaml +0 -0
  655. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/flippers/config/hold_no_eos.yaml +0 -0
  656. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/flippers/config/software_eos_repulse.yaml +0 -0
  657. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/game/config/config.yaml +0 -0
  658. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/game/config/config_with_balls.yaml +0 -0
  659. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/head2head/config/config.yaml +0 -0
  660. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/high_score/config/high_score.yaml +0 -0
  661. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/high_score/modes/high_score/config/high_score.yaml +0 -0
  662. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/high_score_reverse/config/high_score.yaml +0 -0
  663. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/high_score_reverse/modes/high_score/config/high_score.yaml +0 -0
  664. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/high_score_vars/config/high_score.yaml +0 -0
  665. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/high_score_vars/modes/high_score/config/high_score.yaml +0 -0
  666. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/i2c_servo_controller/config/config.yaml +0 -0
  667. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/info_lights/config/config.yaml +0 -0
  668. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/kickback/config/config.yaml +0 -0
  669. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light/config/light.yaml +0 -0
  670. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light/config/light_default_color_correction.yaml +0 -0
  671. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light/config/light_groups.yaml +0 -0
  672. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light/config/lights_on_drivers.yaml +0 -0
  673. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light/config/matrix_lights.yaml +0 -0
  674. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/config/light_player.yaml +0 -0
  675. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/config/light_player_named_colors.yaml +0 -0
  676. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/modes/mode1/config/mode1.yaml +0 -0
  677. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/modes/mode2/config/mode2.yaml +0 -0
  678. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/shows/show_ext1.yaml +0 -0
  679. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/shows/show_ext2.yaml +0 -0
  680. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_player/shows/show_ext3.yaml +0 -0
  681. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_segment_displays/config/config.yaml +0 -0
  682. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/light_segment_displays/config/config_dots.yaml +0 -0
  683. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/lisy/config/config.yaml +0 -0
  684. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/lisy/config/config_modern.yaml +0 -0
  685. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/lisy/config/config_system11.yaml +0 -0
  686. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/logic_blocks/config/config.yaml +0 -0
  687. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/logic_blocks/modes/mode1/config/mode1.yaml +0 -0
  688. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/logic_blocks/modes/mode2/config/mode2.yaml +0 -0
  689. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/logic_blocks/modes/mode3/config/mode3.yaml +0 -0
  690. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/logic_blocks/modes/mode4/config/mode4.yaml +0 -0
  691. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/machine_vars/config/config.yaml +0 -0
  692. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/magnet/config/config.yaml +0 -0
  693. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/match_mode/config/config.yaml +0 -0
  694. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/match_mode/config/config_highscore.yaml +0 -0
  695. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/match_mode/modes/match/config/match.yaml +0 -0
  696. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mma8451/config/config.yaml +0 -0
  697. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_broken_mode_config.yaml +0 -0
  698. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_empty_modes_section.yaml +0 -0
  699. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_loading_invalid_modes.yaml +0 -0
  700. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_missing_mode_section.yaml +0 -0
  701. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_mode_without_config.yaml +0 -0
  702. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_modes.yaml +0 -0
  703. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/config/test_modes_in_game.yaml +0 -0
  704. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/broken_mode/config/broken_mode.yaml +0 -0
  705. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/broken_mode2/config/broken_mode2.yaml +0 -0
  706. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode1/config/mode1.yaml +0 -0
  707. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode1/config/test.yaml +0 -0
  708. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode2/config/mode2.yaml +0 -0
  709. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode3/code/mode3.py +0 -0
  710. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode3/config/mode3.yaml +0 -0
  711. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode4/config/mode4.yaml +0 -0
  712. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/config/mode5.yaml +0 -0
  713. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/config/test.yaml +0 -0
  714. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/mode8/config/mode8.yaml +0 -0
  715. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/mode8/config/test.yaml +0 -0
  716. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode6/config/mode6.yaml +0 -0
  717. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode6/config/test.yaml +0 -0
  718. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode7/config/mode7.yaml +0 -0
  719. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode7/config/test.yaml +0 -0
  720. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_restart_on_next_ball/config/mode_restart_on_next_ball.yaml +0 -0
  721. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mode_tests/modes/mode_without_config/config/README +0 -0
  722. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/motor/config/drop_target.yaml +0 -0
  723. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/motor/config/ghostbusters.yaml +0 -0
  724. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/motor/config/multiposition_motor.yaml +0 -0
  725. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/motor/config/multiposition_motor_home_in_the_middle.yaml +0 -0
  726. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/motor/config/multiposition_motor_start_on_end_switch.yaml +0 -0
  727. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mpftestcase/config/test_mpftestcase.yaml +0 -0
  728. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball/config/config.yaml +0 -0
  729. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball/modes/mode1/config/mode1.yaml +0 -0
  730. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball/modes/mode2/config/mode2.yaml +0 -0
  731. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball/modes/mode3/config/mode3.yaml +0 -0
  732. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball/modes/mode4/config/mode4.yaml +0 -0
  733. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball/modes/mode5/config/mode5.yaml +0 -0
  734. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/config.yaml +0 -0
  735. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testDefault.yaml +0 -0
  736. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testMinVirtualPhysical.yaml +0 -0
  737. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testNoVirtual.yaml +0 -0
  738. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testPhysicalOnly.yaml +0 -0
  739. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testPhysicalOnlyNoStealing.yaml +0 -0
  740. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testSourceDevices.yaml +0 -0
  741. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/config/testVirtualOnly.yaml +0 -0
  742. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/blocking/config/blocking.yaml +0 -0
  743. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/default/config/default.yaml +0 -0
  744. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/min_virtual_physical/config/min_virtual_physical.yaml +0 -0
  745. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/no_virtual/config/no_virtual.yaml +0 -0
  746. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/physical_only/config/physical_only.yaml +0 -0
  747. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/physical_only_no_stealing/config/physical_only_no_stealing.yaml +0 -0
  748. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/source_devices/config/source_devices.yaml +0 -0
  749. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/multiball_locks/modes/virtual_only/config/virtual_only.yaml +0 -0
  750. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/mypinballs/config/config.yaml +0 -0
  751. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/null/config/null.yaml +0 -0
  752. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/openpixel/config/config.yaml +0 -0
  753. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/openpixel/config/fadecandy.yaml +0 -0
  754. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/opp/config/config.yaml +0 -0
  755. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/opp/config/config2.yaml +0 -0
  756. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/opp/config/config_stm32.yaml +0 -0
  757. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/osc/config/config.yaml +0 -0
  758. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/p3_roc/config/config.yaml +0 -0
  759. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/p_roc/config/config.yaml +0 -0
  760. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/p_roc/config/snux.yaml +0 -0
  761. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/p_roc/config/wpc.yaml +0 -0
  762. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/pkone/config/config.yaml +0 -0
  763. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/platform/config/test_platform.yaml +0 -0
  764. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/platform/config/test_virtual.yaml +0 -0
  765. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/player_vars/config/player_vars.yaml +0 -0
  766. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/playfield/config/test_playfield.yaml +0 -0
  767. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/playfield_transfer/config/config.yaml +0 -0
  768. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/plugin_config_player/config/plugin_config_player.yaml +0 -0
  769. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/plugin_config_player/modes/mode1/config/mode1.yaml +0 -0
  770. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/plugin_config_player/modes/mode1/shows/show2.yaml +0 -0
  771. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/plugin_config_player/modes/mode1/shows/show3.yaml +0 -0
  772. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/plugin_config_player/shows/show1.yaml +0 -0
  773. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/pololu_maestro/config/pololu_maestro.yaml +0 -0
  774. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/pololu_tic/config/config.yaml +0 -0
  775. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/randomizer/config/randomizer.yaml +0 -0
  776. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/rpi/config/config.yaml +0 -0
  777. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/rpi_dmd/config/config.yaml +0 -0
  778. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/score_queue/config/config.yaml +0 -0
  779. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/score_queue/modes/mode1/config/mode1.yaml +0 -0
  780. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/score_reels/config/config.yaml +0 -0
  781. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/segment_display/config/config.yaml +0 -0
  782. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/segment_display/config/config_colors.yaml +0 -0
  783. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/segment_display/config/config_flashing.yaml +0 -0
  784. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/segment_display/config/config_transition.yaml +0 -0
  785. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/segment_display/config/game.yaml +0 -0
  786. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/segment_display/modes/mode1/config/mode1.yaml +0 -0
  787. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/sequence_shot/config/config.yaml +0 -0
  788. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/sequence_shot/modes/mode1/config/mode1.yaml +0 -0
  789. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/service_mode/config/config.yaml +0 -0
  790. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/servo/config/config.yaml +0 -0
  791. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/settings/config/config.yaml +0 -0
  792. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/config/test_shot_group_rotate_with_exclude.yaml +0 -0
  793. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/config/test_shot_groups.yaml +0 -0
  794. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/config/test_shots.yaml +0 -0
  795. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/modes/base/config/base.yaml +0 -0
  796. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/modes/base2/config/base2.yaml +0 -0
  797. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/modes/base3/config/base3.yaml +0 -0
  798. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/modes/mode1/config/mode1.yaml +0 -0
  799. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/modes/mode2/config/mode2.yaml +0 -0
  800. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shots/modes/rotate_with_exclude/config/rotate_with_exclude.yaml +0 -0
  801. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/config/test_show_player_queue.yaml +0 -0
  802. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/config/test_show_pools.yaml +0 -0
  803. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/config/test_shows.yaml +0 -0
  804. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/config/test_sync_ms.yaml +0 -0
  805. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/modes/mode1/config/mode1.yaml +0 -0
  806. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/modes/mode2/config/mode2.yaml +0 -0
  807. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/modes/mode3/config/mode3.yaml +0 -0
  808. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/modes/mode4/config/mode4.yaml +0 -0
  809. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/8linesweep.yaml +0 -0
  810. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/myparentshow.yaml +0 -0
  811. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/on_demand/mychildshow.yaml +0 -0
  812. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/test_show1.yaml +0 -0
  813. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/test_show2.yaml +0 -0
  814. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/test_show3.yaml +0 -0
  815. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/test_show_key_token.yaml +0 -0
  816. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/shows/shows/test_variable_show.yaml +0 -0
  817. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smart_matrix/config/config.yaml +0 -0
  818. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smart_matrix/config/old_cookie.yaml +0 -0
  819. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smart_virtual_platform/config/test_coil_fired_plunger.yaml +0 -0
  820. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smart_virtual_platform/config/test_entrance_switch.yaml +0 -0
  821. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smart_virtual_platform/config/test_smart_virtual.yaml +0 -0
  822. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smart_virtual_platform/config/test_smart_virtual_initial.yaml +0 -0
  823. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/smbus2/config/config.yaml +0 -0
  824. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/snux/config/config.yaml +0 -0
  825. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/spi_bit_bang/config/config.yaml +0 -0
  826. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/spike/config/config.yaml +0 -0
  827. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/spinners/config/test_spinners.yaml +0 -0
  828. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/state_machine/config/config.yaml +0 -0
  829. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/state_machine/modes/game_mode/config/game_mode.yaml +0 -0
  830. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/state_machine/modes/non_game_mode/config/non_game_mode.yaml +0 -0
  831. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/step_stick/config/config.yaml +0 -0
  832. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/stepper/config/config.yaml +0 -0
  833. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/switch_controller/config/config.yaml +0 -0
  834. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/switch_player/config/config.yaml +0 -0
  835. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt/config/config.yaml +0 -0
  836. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt/config/config_mechanical_eject.yaml +0 -0
  837. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt/config/config_system_11_trough.yaml +0 -0
  838. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt/config/settings.yaml +0 -0
  839. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt/modes/base/config/base.yaml +0 -0
  840. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt/modes/tilt/config/tilt.yaml +0 -0
  841. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/tilt_defaults/config/config.yaml +0 -0
  842. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/timed_switches/config/timed_switches.yaml +0 -0
  843. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/timed_switches/modes/mode1/config/mode1.yaml +0 -0
  844. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/timer/config/test_timer.yaml +0 -0
  845. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/timer/modes/mode_with_timers/config/mode_with_timers.yaml +0 -0
  846. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/timer/modes/mode_with_timers2/config/mode_with_timers2.yaml +0 -0
  847. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/trinamics_steprocker/config/trinamics_steprocker.yaml +0 -0
  848. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/twitch_client/config/config.yaml +0 -0
  849. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/variable_player/config/config.yaml +0 -0
  850. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/variable_player/modes/mode1/config/mode1.yaml +0 -0
  851. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/variable_player/modes/mode2/config/mode2.yaml +0 -0
  852. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/variable_player/modes/mode3/config/mode3.yaml +0 -0
  853. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/variable_player/modes/mode_for_logic_block/config/mode_for_logic_block.yaml +0 -0
  854. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/variable_player/modes/non_game_mode/config/non_game_mode.yaml +0 -0
  855. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/virtual_pinball/config/config.yaml +0 -0
  856. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/virtual_segment_display_connector/config/config.yaml +0 -0
  857. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/vpe/config/config.yaml +0 -0
  858. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/machine_files/vpx/config/config.yaml +0 -0
  859. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/platforms/fast.py +0 -0
  860. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/platforms/pinproc.py +0 -0
  861. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/regression_tests/light_player_subscriptions.yaml +0 -0
  862. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/regression_tests/shot_same_show_differnent_token.yaml +0 -0
  863. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/regression_tests/shots_with_token_in_profile_and_shot.yaml +0 -0
  864. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/regression_tests/show_player_subscriptions.yaml +0 -0
  865. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Accelerometer.py +0 -0
  866. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Achievement.py +0 -0
  867. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_AssetManager.py +0 -0
  868. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Attract.py +0 -0
  869. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Autofire.py +0 -0
  870. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallController.py +0 -0
  871. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDevice.py +0 -0
  872. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceAutoManualPlunger.py +0 -0
  873. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceEnableCoil.py +0 -0
  874. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceEventConfirmation.py +0 -0
  875. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceEventEjector.py +0 -0
  876. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceHoldCoil.py +0 -0
  877. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceJamSwitch.py +0 -0
  878. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceManualWithTarget.py +0 -0
  879. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceModernTroughPlungerSetup.py +0 -0
  880. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceNoPlungerSwitch.py +0 -0
  881. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDevicePlayfieldLock.py +0 -0
  882. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDevicePulseEject.py +0 -0
  883. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceRouting.py +0 -0
  884. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceSingle.py +0 -0
  885. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceSwitchConfirmation.py +0 -0
  886. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDeviceTriggerEvents.py +0 -0
  887. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallDevice_SmartVirtual.py +0 -0
  888. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallHold.py +0 -0
  889. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallRouting.py +0 -0
  890. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallSave.py +0 -0
  891. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BallSearch.py +0 -0
  892. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BcpInterface.py +0 -0
  893. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BcpMc.py +0 -0
  894. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BcpServer.py +0 -0
  895. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BcpSocketClient.py +0 -0
  896. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Blinkenlight.py +0 -0
  897. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_BlockingEvents.py +0 -0
  898. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Bonus.py +0 -0
  899. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_CarouselMode.py +0 -0
  900. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Clock.py +0 -0
  901. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_CoilPlayer.py +0 -0
  902. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ComboSwitches.py +0 -0
  903. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_CommandCreateConfig.py +0 -0
  904. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Commands.py +0 -0
  905. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Config.py +0 -0
  906. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ConfigErrors.py +0 -0
  907. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ConfigLoader.py +0 -0
  908. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ConfigMissingVersion.py +0 -0
  909. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ConfigOldVersion.py +0 -0
  910. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ConfigPlayers.py +0 -0
  911. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ConfigProcessor.py +0 -0
  912. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_CreditsMode.py +0 -0
  913. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_CustomCode.py +0 -0
  914. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DataManager.py +0 -0
  915. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Delay.py +0 -0
  916. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceCollection.py +0 -0
  917. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceDriver.py +0 -0
  918. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceFlasher.py +0 -0
  919. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceGI.py +0 -0
  920. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceLight.py +0 -0
  921. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceManager.py +0 -0
  922. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DeviceMatrixLight.py +0 -0
  923. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DigitalOutput.py +0 -0
  924. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DigitalScoreReels.py +0 -0
  925. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Diverter.py +0 -0
  926. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Dmd.py +0 -0
  927. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DropTargets.py +0 -0
  928. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_DualWoundCoil.py +0 -0
  929. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_EventManager.py +0 -0
  930. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_EventPlayer.py +0 -0
  931. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ExtraBall.py +0 -0
  932. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fadecandy.py +0 -0
  933. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast.py +0 -0
  934. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Dmd.py +0 -0
  935. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Exp.py +0 -0
  936. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Nano.py +0 -0
  937. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Neuron.py +0 -0
  938. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Retro.py +0 -0
  939. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Fast_Seg.py +0 -0
  940. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Flippers.py +0 -0
  941. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_FlippersHoldNoEos.py +0 -0
  942. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_FlippersSoftwareEosRepulse.py +0 -0
  943. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Game.py +0 -0
  944. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_GottliebTrough.py +0 -0
  945. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Head2Head.py +0 -0
  946. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_HighScoreMode.py +0 -0
  947. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_HighScoreModeWithVars.py +0 -0
  948. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_I2cServoController.py +0 -0
  949. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_InfoLights.py +0 -0
  950. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Kickback.py +0 -0
  951. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_LightGroups.py +0 -0
  952. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_LightPlayer.py +0 -0
  953. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_LightPositions.py +0 -0
  954. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_LightSegmentDisplays.py +0 -0
  955. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Lisy.py +0 -0
  956. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_LogicBlocks.py +0 -0
  957. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MMA8451.py +0 -0
  958. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MachineVariables.py +0 -0
  959. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Magnet.py +0 -0
  960. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MatchMode.py +0 -0
  961. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Modes.py +0 -0
  962. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ModesConfigValidation.py +0 -0
  963. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Motors.py +0 -0
  964. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MpfTestCase.py +0 -0
  965. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MultiBall.py +0 -0
  966. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MultiballLock.py +0 -0
  967. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_MyPinballs.py +0 -0
  968. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_OPP.py +0 -0
  969. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Openpixel.py +0 -0
  970. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Osc.py +0 -0
  971. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_P3_Roc.py +0 -0
  972. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PKONE.py +0 -0
  973. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_P_Roc.py +0 -0
  974. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PlaceholderManager.py +0 -0
  975. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Platform.py +0 -0
  976. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PlayerVars.py +0 -0
  977. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Playfield.py +0 -0
  978. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PlayfieldTransfer.py +0 -0
  979. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PluginConfigPlayer.py +0 -0
  980. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PololuMaestro.py +0 -0
  981. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_PololuTic.py +0 -0
  982. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_QueueEventPlayer.py +0 -0
  983. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_RGBColor.py +0 -0
  984. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_RandomEventPlayer.py +0 -0
  985. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Randomizer.py +0 -0
  986. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Rpi.py +0 -0
  987. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_RpiDmd.py +0 -0
  988. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ScoreQueue.py +0 -0
  989. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ScoreReels.py +0 -0
  990. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SegmentDisplay.py +0 -0
  991. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SegmentMappings.py +0 -0
  992. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SequenceShot.py +0 -0
  993. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ServiceCli.py +0 -0
  994. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Servo.py +0 -0
  995. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Settings.py +0 -0
  996. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ShotGroups.py +0 -0
  997. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Shots.py +0 -0
  998. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_ShowPools.py +0 -0
  999. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Shows.py +0 -0
  1000. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SmartMatrix.py +0 -0
  1001. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SmartVirtualPlatform.py +0 -0
  1002. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Smbus2.py +0 -0
  1003. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Snux.py +0 -0
  1004. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SpiBitBang.py +0 -0
  1005. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Spike.py +0 -0
  1006. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Spinners.py +0 -0
  1007. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_StateMachine.py +0 -0
  1008. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_StepStick.py +0 -0
  1009. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Stepper.py +0 -0
  1010. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SwitchController.py +0 -0
  1011. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SwitchPlayer.py +0 -0
  1012. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_SwitchPositions.py +0 -0
  1013. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_System11Trough.py +0 -0
  1014. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Tilt.py +0 -0
  1015. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_TimedSwitch.py +0 -0
  1016. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Timer.py +0 -0
  1017. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_TooLongExitCountDelay.py +0 -0
  1018. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_TrinamicsStepRocker.py +0 -0
  1019. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_TroughEntranceSwitch.py +0 -0
  1020. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_TwitchClient.py +0 -0
  1021. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Utility_Functions.py +0 -0
  1022. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_VPX.py +0 -0
  1023. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_VariablePlayer.py +0 -0
  1024. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_Virtual.py +0 -0
  1025. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_VirtualPinball.py +0 -0
  1026. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_VirtualSegmentDisplayConnector.py +0 -0
  1027. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_VisualPinballEngine.py +0 -0
  1028. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/test_YamlInterface.py +0 -0
  1029. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/tests/vpe_simulator.py +0 -0
  1030. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/wire/base.py +0 -0
  1031. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf/wire/fast.py +0 -0
  1032. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf-logo-200.png +0 -0
  1033. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf.egg-info/SOURCES.txt +0 -0
  1034. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf.egg-info/dependency_links.txt +0 -0
  1035. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf.egg-info/entry_points.txt +0 -0
  1036. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf.egg-info/requires.txt +0 -0
  1037. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mpf.egg-info/top_level.txt +0 -0
  1038. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/mypy.ini +0 -0
  1039. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/pyproject.toml +0 -0
  1040. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/setup.cfg +0 -0
  1041. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/setup.py +0 -0
  1042. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/sonar-project.properties +0 -0
  1043. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/test_machine.py +0 -0
  1044. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/test_regression.py +0 -0
  1045. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/tools/afl_fuzz.py +0 -0
  1046. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/tools/afl_howto.txt +0 -0
  1047. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/tools/convert_segments.py +0 -0
  1048. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/tools/debug_run_game.py +0 -0
  1049. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/tools/p3_switch_test.py +0 -0
  1050. {mpf-0.57.0.dev32 → mpf-0.57.0.dev33}/tools/smart_matrix_dmd_teensy_code/smart_matrix_dmd_teensy_code.ino +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mpf
3
- Version: 0.57.0.dev32
3
+ Version: 0.57.0.dev33
4
4
  Summary: The Mission Pinball Framework (MPF)
5
5
  Author-email: The Mission Pinball Framework Team <brian@missionpinball.org>
6
6
  License: MIT
@@ -10,7 +10,7 @@ PyPI.
10
10
 
11
11
  """
12
12
 
13
- __version__ = '0.57.0.dev32' # Also consider whether MPF-MC pyproject.toml should be updated
13
+ __version__ = '0.57.0.dev33' # Also consider whether MPF-MC pyproject.toml should be updated
14
14
  '''The full version of MPF.'''
15
15
 
16
16
  __short_version__ = '0.57'
@@ -106,7 +106,7 @@ class Command:
106
106
  const=logging.DEBUG,
107
107
  default=logging.INFO,
108
108
  help="Enables verbose logging to the console. DO "
109
- "NOTE: On Windows platforms you must also use -v for "
109
+ "NOTE: you must also use -v for "
110
110
  "this to work.")
111
111
 
112
112
  parser.add_argument("-x",
@@ -177,7 +177,7 @@ class Command:
177
177
  console_log_queue = Queue()
178
178
  console_queue_handler = QueueHandler(console_log_queue)
179
179
  self.console_queue_listener = logging.handlers.QueueListener(
180
- console_log_queue, console_log)
180
+ console_log_queue, console_log, respect_handler_level=True)
181
181
  self.console_queue_listener.start()
182
182
 
183
183
  # initialize file log
@@ -663,6 +663,7 @@ fast_aud:
663
663
  port: list|str|auto
664
664
  baud: single|int|230400
665
665
  debug: single|bool|false
666
+ optional: single|bool|false
666
667
  console_log: single|enum(none,basic,full)|none
667
668
  file_log: single|enum(none,basic,full)|basic
668
669
  pin1_pulse_time: single|ms|100
@@ -692,7 +693,7 @@ fast_aud:
692
693
  headphones_levels_list: list|int|None
693
694
  headphones_level: single|enum(headphones,line)|headphones
694
695
  mute_speakers_with_headphones: single|bool|true
695
- link_main_to_main: single|bool|true
696
+ link_main_to_main: single|bool|false
696
697
  link_sub_to_main: single|bool|true
697
698
  link_headphones_to_main: single|bool|false
698
699
 
@@ -1812,6 +1813,7 @@ sound_system:
1812
1813
  sound_system_tracks:
1813
1814
  type: single|enum(standard,sound_loop,playlist)|standard
1814
1815
  volume: single|gain|0.5
1816
+ label: single|str|None
1815
1817
  events_when_played: list|event_posted|None
1816
1818
  events_when_stopped: list|event_posted|None
1817
1819
  events_when_paused: list|event_posted|None
@@ -122,6 +122,7 @@ sort_devices_by_number: single|bool|True
122
122
  ServiceMenuEntry("Audits Menu", self._audits_menu),
123
123
  ServiceMenuEntry("Adjustments Menu", self._adjustments_menu),
124
124
  ServiceMenuEntry("Utilities Menu", self._utilities_menu),
125
+ ServiceMenuEntry("Audio Menu", self._audio_menu)
125
126
 
126
127
  ]
127
128
  return entries
@@ -184,6 +185,28 @@ sort_devices_by_number: single|bool|True
184
185
  async def _adjustments_menu(self):
185
186
  await self._make_menu(self._load_adjustments_menu_entries())
186
187
 
188
+ # Audio
189
+ def _load_audio_menu_entries(self) -> List[ServiceMenuEntry]:
190
+ """Return the audio menu items with label and callback."""
191
+ items = [
192
+ ServiceMenuEntry("Software Levels", self._volume_menu)
193
+ ]
194
+
195
+ self.debug_log("Looking for platform volumes: %s", self.machine.hardware_platforms)
196
+ for p, platform in self.machine.hardware_platforms.items():
197
+ # TODO: Define an AudioInterface base class
198
+ if getattr(platform, "audio_interface", None):
199
+ self.debug_log("Found '%s' platform audio for volume: %s", p, platform)
200
+ # TODO: find a good way to get a name of a platform
201
+ name = p.title()
202
+ items.append(ServiceMenuEntry(f"{name} Levels", partial(self._volume_menu, platform)))
203
+ else:
204
+ self.debug_log("Platform '%s' has no audio to configure volume: %s", p, platform)
205
+ return items
206
+
207
+ async def _audio_menu(self):
208
+ await self._make_menu(self._load_audio_menu_entries())
209
+
187
210
  # Utilities
188
211
  def _load_utilities_menu_entries(self) -> List[ServiceMenuEntry]:
189
212
  """Return the utilities menu items with label and callback."""
@@ -433,6 +456,120 @@ sort_devices_by_number: single|bool|True
433
456
 
434
457
  self.machine.events.post("service_light_test_stop")
435
458
 
459
+ async def _volume_menu(self, platform=None):
460
+ position = 0
461
+ if platform:
462
+ item_configs = platform.audio_interface.amps
463
+ else:
464
+ item_configs = self.machine.config["sound_system"]["tracks"]
465
+ items = [{
466
+ **config,
467
+ "name": config.get("name", track),
468
+ "label": config.get("label", track),
469
+ "is_platform": bool(platform),
470
+ # TODO: Give each software track a 'name' property
471
+ "value": self.machine.variables.get_machine_var(f"{config['name'] if platform else track}_volume") or config['volume']
472
+ } for track, config in item_configs.items()]
473
+
474
+ # do not crash if no items
475
+ if not items: # pragma: no cover
476
+ return
477
+
478
+ # Convert floats to ints for systems that use 0.0-1.0 for volume
479
+ for item in items:
480
+ if isinstance(item['value'], float):
481
+ item['value'] = int(item['value'] * 100)
482
+
483
+ # If supported on hardware platform, add option to write to firmware
484
+ if platform and hasattr(platform.audio_interface, "save_settings_to_firmware"):
485
+ items.append({
486
+ "name": "write_to_firmware",
487
+ "label": "Write Settings",
488
+ "is_platform": True,
489
+ "value": "Confirm",
490
+ "levels_list": ["Confirm", "Saved"]
491
+ })
492
+
493
+ self._update_volume_slide(items, position)
494
+
495
+ while True:
496
+ key = await self._get_key()
497
+ if key == 'ESC':
498
+ break
499
+ if key == 'UP':
500
+ position += 1
501
+ if position >= len(items):
502
+ position = 0
503
+ self._update_volume_slide(items, position)
504
+ elif key == 'DOWN':
505
+ position -= 1
506
+ if position < 0:
507
+ position = len(items) - 1
508
+ self._update_volume_slide(items, position)
509
+ elif key == 'ENTER':
510
+ # change setting
511
+ await self._volume_change(items, position, platform, focus_change="enter")
512
+
513
+ self.machine.events.post("service_volume_stop")
514
+
515
+
516
+ def _update_volume_slide(self, items, position, is_change=False, focus_change=None):
517
+ config = items[position]
518
+ event = "service_volume_{}".format("edit" if is_change else "start")
519
+ # The 'focus_change' argument can be used to start/stop sound files playing
520
+ # during the service menu, to test volume.
521
+ self.machine.events.post(event,
522
+ settings_label=config["label"],
523
+ value_label=config["value"],
524
+ track=config["name"],
525
+ is_platform=config["is_platform"],
526
+ focus_change=focus_change)
527
+
528
+ async def _volume_change(self, items, position, platform, focus_change=None):
529
+ self._update_volume_slide(items, position, focus_change=focus_change)
530
+ if items[position].get("levels_list"):
531
+ values = items[position]["levels_list"]
532
+ else:
533
+ # Use ints for values to avoid floating-point comparisons
534
+ values = [int((0.05 * i) * 100) for i in range(0,21)]
535
+ value_position = values.index(items[position]["value"])
536
+ self._update_volume_slide(items, position, is_change=True)
537
+
538
+ while True:
539
+ key = await self._get_key()
540
+ new_value = None
541
+ if key == 'ESC':
542
+ self._update_volume_slide(items, position, focus_change="exit")
543
+ break
544
+ if key == 'UP':
545
+ value_position += 1
546
+ if value_position >= len(values):
547
+ value_position = 0
548
+ new_value = values[value_position]
549
+ elif key == 'DOWN':
550
+ value_position -= 1
551
+ if value_position < 0:
552
+ value_position = len(values) - 1
553
+ new_value = values[value_position]
554
+ if new_value is not None:
555
+ items[position]['value'] = new_value
556
+ # Check for a firmware update
557
+ if items[position]['name'] == "write_to_firmware":
558
+ if new_value == "Saved":
559
+ platform.audio_interface.save_settings_to_firmware()
560
+ # Remove the options from the list
561
+ values = ['Saved']
562
+ items[position]['levels_list'] = values
563
+ else:
564
+ # Internally tracked values divide by 100 to store a float.
565
+ # External (hardware) values, use the value units provided
566
+ # TODO: Create an Amp/Track class to internalize this method.
567
+ if not items[position].get("levels_list"):
568
+ new_value = new_value / 100
569
+ self.machine.variables.set_machine_var(f"{items[position]['name']}_volume", new_value, persist=True)
570
+ self._update_volume_slide(items, position, is_change=True)
571
+
572
+ # AUDIT Menu
436
573
  def _load_audit_menu_entries(self) -> List[ServiceMenuEntry]:
437
574
  """Return the audit menu items with label and callback."""
438
575
  return [
@@ -93,6 +93,21 @@ slide_player:
93
93
  service_settings:
94
94
  action: remove
95
95
 
96
+ # volume:
97
+ service_volume_start:
98
+ service_settings:
99
+ action: play
100
+ priority: 2
101
+ service_settings_edit:
102
+ action: remove
103
+ service_volume_edit:
104
+ service_settings_edit:
105
+ action: play
106
+ priority: 3
107
+ service_volume_stop:
108
+ service_settings:
109
+ action: remove
110
+
96
111
  # audits:
97
112
  service_audits_menu_show:
98
113
  service_audits_menu:
@@ -29,17 +29,17 @@ class FastAudCommunicator(FastSerialCommunicator):
29
29
  self.amps = {
30
30
  'main':
31
31
  {'cmd': 'AV',
32
- 'volume': '00',
32
+ 'volume': 0,
33
33
  'enabled': False,
34
34
  },
35
35
  'sub':
36
36
  {'cmd': 'AS',
37
- 'volume': '00',
37
+ 'volume': 0,
38
38
  'enabled': False,
39
39
  },
40
40
  'headphones':
41
41
  {'cmd': 'AH',
42
- 'volume': '00',
42
+ 'volume': 0,
43
43
  'enabled': False,
44
44
  },
45
45
  }
@@ -54,10 +54,12 @@ class FastAudCommunicator(FastSerialCommunicator):
54
54
 
55
55
  async def soft_reset(self):
56
56
  self.update_config(send_now=True)
57
- for amp in self.amps:
58
- self.set_volume(amp, int(self.amps[amp]['volume'], 16))
57
+ for amp_name in self.amps:
58
+ self.set_volume(amp_name, self.amps[amp_name]['volume'])
59
59
 
60
60
  def _volume_to_hw(self, volume):
61
+ """Always store and pass volume levels as decimals (0-64), and use this
62
+ method to convert to hex strings when sending via serial to AUD board."""
61
63
  volume = int(volume)
62
64
  assert 0 <= volume <= 63, f"Invalid volume {volume}"
63
65
  return f"{volume:02X}"
@@ -83,28 +85,31 @@ class FastAudCommunicator(FastSerialCommunicator):
83
85
  if send_now:
84
86
  self.send_config_to_board()
85
87
 
86
- def set_volume(self, amp, volume, send_now=True):
87
- if amp not in self.amps:
88
- raise AssertionError(f"Invalid amp {amp}")
88
+ def set_volume(self, amp_name, volume, send_now=True):
89
+ if amp_name not in self.amps:
90
+ raise AssertionError(f"Invalid amp {amp_name}")
89
91
 
90
- volume = self._volume_to_hw(volume)
91
- self.amps[amp]['volume'] = volume
92
+ # Track the internal (realtime) volume of the amp, which may be
93
+ # different than the stored (machine var) volume during ducking
94
+ self.amps[amp_name]['volume'] = volume
92
95
  if send_now:
93
- self.send_and_forget(f"{self.amps[amp]['cmd']}:{volume}")
96
+ hw_volume = self._volume_to_hw(volume)
97
+ self.send_and_forget(f"{self.amps[amp_name]['cmd']}:{hw_volume}")
94
98
 
95
- def get_volume(self, amp):
96
- return int(self.amps[amp]['volume'], 16)
99
+ def get_volume(self, amp_name):
100
+ """Get the current internal volume of the amp."""
101
+ return self.amps[amp_name]['volume']
97
102
 
98
- def enable_amp(self, amp, send_now=True):
99
- if amp not in self.amps:
100
- raise AssertionError(f"Invalid amp {amp}")
101
- self.amps[amp]['enabled'] = True
103
+ def enable_amp(self, amp_name, send_now=True):
104
+ if amp_name not in self.amps:
105
+ raise AssertionError(f"Invalid amp {amp_name}")
106
+ self.amps[amp_name]['enabled'] = True
102
107
  self.update_config(send_now)
103
108
 
104
- def disable_amp(self, amp, send_now=True):
105
- if amp not in self.amps:
106
- raise AssertionError(f"Invalid amp {amp}")
107
- self.amps[amp]['enabled'] = False
109
+ def disable_amp(self, amp_name, send_now=True):
110
+ if amp_name not in self.amps:
111
+ raise AssertionError(f"Invalid amp {amp_name}")
112
+ self.amps[amp_name]['enabled'] = False
108
113
  self.update_config(send_now)
109
114
 
110
115
  def set_phones_level(self, mode, send_now=True):
@@ -73,6 +73,10 @@ class FastSerialCommunicator(LogMixin):
73
73
 
74
74
  async def connect(self):
75
75
  for port in self.config['port']:
76
+ # If this is an auto-detect that failed to detect, the port will
77
+ # just be 'auto' and there's no reason to try and connect to it.
78
+ if port == 'auto':
79
+ continue
76
80
  self.log.info(f"Trying to connect to {port} at {self.config['baud']}bps")
77
81
  success = False
78
82
 
@@ -88,7 +92,7 @@ class FastSerialCommunicator(LogMixin):
88
92
 
89
93
  # if we are in production mode, retry
90
94
  await asyncio.sleep(.1)
91
- self.log.warning("Connection to %s failed. Will retry.", port)
95
+ self.log.warning("Connection to port %s failed. Will retry.", port)
92
96
  else:
93
97
  # we got a connection
94
98
  self.log.info(f"Connected to {port} at {self.config['baud']}bps")
@@ -117,7 +117,6 @@ class FastHardwarePlatform(ServoPlatform, LightsPlatform, RgbDmdPlatform,
117
117
  self.machine.events.add_async_handler('init_phase_1', self.soft_reset)
118
118
  self.machine.events.add_handler('init_phase_3', self._start_communicator_tasks)
119
119
  self.machine.events.add_handler('machine_reset_phase_2', self._init_complete)
120
- self.audio_interface = self.configure_audio_interface()
121
120
  await self._connect_to_hardware()
122
121
 
123
122
  async def soft_reset(self, **kwargs):
@@ -275,6 +274,10 @@ class FastHardwarePlatform(ServoPlatform, LightsPlatform, RgbDmdPlatform,
275
274
  try:
276
275
  await communicator.connect()
277
276
  except SerialException as e:
277
+ if config.get("optional"):
278
+ self.info_log("Unable to connect to %s on port %s, flagged as optional so ignoring", port, config['port'])
279
+ del(self.serial_connections[port])
280
+ continue
278
281
  raise MpfRuntimeError("Could not open serial port {}. Is something else connected to the port? "
279
282
  "Did the port number or your computer change? Do you have permissions to the port? "
280
283
  "".format(port), 1, self.log.name) from e
@@ -12,7 +12,11 @@ class FASTAudioInterface(LogMixin):
12
12
  self.platform = platform
13
13
  self.machine = platform.machine
14
14
  self.communicator = communicator
15
- self.amps = {'main': {}, 'sub': {}, 'headphones': {}}
15
+ self.amps = {
16
+ 'main': { 'name': 'fast_audio_main', 'label': "Speakers" },
17
+ 'sub': { 'name': 'fast_audio_sub', 'label': "Subwoofer" },
18
+ 'headphones': { 'name': 'fast_audio_headphones', 'label': "Headphones" }
19
+ }
16
20
  self.control_pin_pulse_times = list()
17
21
 
18
22
  # need to get this in before the soft_reset(), but after machine vars load
@@ -26,10 +30,12 @@ class FASTAudioInterface(LogMixin):
26
30
  self._register_event_handlers()
27
31
 
28
32
  def _configure_machine_vars(self):
29
- for amp in self.amps.keys():
30
- var_name = f'fast_audio_{amp}_volume'
33
+ for amp_name in self.amps.keys():
34
+ var_name = f'fast_audio_{amp_name}_volume'
31
35
 
32
- if amp != 'main' and self.communicator.config[f'link_{amp}_to_main']:
36
+ # Is there a race condition on first boot if the linked amp
37
+ # comes in the iteration before 'main' is written?
38
+ if amp_name != 'main' and self.communicator.config[f'link_{amp_name}_to_main']:
33
39
  self.machine.variables.set_machine_var(
34
40
  name=var_name,
35
41
  value=self.machine.variables.get_machine_var('fast_audio_main_volume'),
@@ -37,32 +43,36 @@ class FASTAudioInterface(LogMixin):
37
43
 
38
44
  elif not self.machine.variables.is_machine_var(var_name):
39
45
  self.machine.variables.set_machine_var(name=var_name,
40
- value=self.communicator.config[f'default_{amp}_volume'],
46
+ value=self.communicator.config[f'default_{amp_name}_volume'],
41
47
  persist=self.communicator.config[f'persist_volume_settings'])
42
48
  def _init_amps(self):
43
- for amp in self.amps.keys():
44
- self.amps[amp]['steps'] = self.communicator.config[f'{amp}_steps']
45
- self.amps[amp]['max_volume'] = self.communicator.config[f'max_hw_volume_{amp}']
46
- self.amps[amp]['levels_list'] = self.communicator.config[f'{amp}_levels_list']
47
- self.amps[amp]['link_to_main'] = self.communicator.config[f'link_{amp}_to_main']
49
+ for amp_name in self.amps.keys():
50
+ amp = self.amps[amp_name]
51
+ amp['steps'] = self.communicator.config[f'{amp_name}_steps']
52
+ amp['max_volume'] = self.communicator.config[f'max_hw_volume_{amp_name}']
53
+ amp['levels_list'] = self.communicator.config[f'{amp_name}_levels_list']
54
+ amp['link_to_main'] = self.communicator.config[f'link_{amp_name}_to_main']
48
55
 
49
56
  # Just set everything here. The communicator will send the
50
57
  # config as part of its init process later
51
- if self.communicator.config[f'{amp}_amp_enabled']:
52
- self.communicator.enable_amp(amp, send_now=False)
58
+ if self.communicator.config[f'{amp_name}_amp_enabled']:
59
+ self.communicator.enable_amp(amp_name, send_now=False)
53
60
 
54
- if not self.amps[amp]['levels_list']:
55
- self._create_levels_list(amp)
61
+ if not amp['levels_list']:
62
+ self._create_levels_list(amp_name)
56
63
  else:
57
64
  # if we have a levels list in the config, make sure the steps num is right
58
- self.amps[amp]['steps'] = len(self.amps[amp]['levels_list']) - 1
65
+ amp['steps'] = len(amp['levels_list']) - 1
59
66
 
60
- if self.amps[amp]['link_to_main'] and len(self.amps[amp]['levels_list']) != len(self.amps['main']['levels_list']):
61
- raise AssertionError(f"Cannot link {amp} to main. The number of volume steps must be the same. "
67
+ if amp['link_to_main'] and len(amp['levels_list']) != len(self.amps['main']['levels_list']):
68
+ raise AssertionError(f"Cannot link {amp_name} to main. The number of volume steps must be the same. "
62
69
  f"Main has {len(self.amps['main']['levels_list'])} steps, "
63
- f"but {amp} has {len(self.amps[amp]['levels_list'])} steps.")
70
+ f"but {amp_name} has {len(amp['levels_list'])} steps.")
71
+
72
+ # Write the volume levels to the hardware layer, but no need to send
73
+ # them because (regular priority) init_phase_1 includes a soft_reset()
74
+ self.send_volume_to_hw(send_now=False)
64
75
 
65
- self.communicator.set_volume(amp, self.get_hw_volume(amp), send_now=False)
66
76
 
67
77
  def _configure_control_pins(self):
68
78
  for i in range(6):
@@ -83,91 +93,80 @@ class FASTAudioInterface(LogMixin):
83
93
  self.communicator.set_phones_behavior(phones, send_now=False)
84
94
 
85
95
  def _register_event_handlers(self):
86
- self.platform.machine.events.add_handler('machine_var_fast_audio_main_volume', self.set_volume, amp='main')
87
- self.platform.machine.events.add_handler('machine_var_fast_audio_sub_volume', self.set_volume, amp='sub')
88
- self.platform.machine.events.add_handler('machine_var_fast_audio_headphones_volume', self.set_volume, amp='headphones')
96
+ self.platform.machine.events.add_handler('machine_var_fast_audio_main_volume', self._set_volume, amp_name='main')
97
+ self.platform.machine.events.add_handler('machine_var_fast_audio_sub_volume', self._set_volume, amp_name='sub')
98
+ self.platform.machine.events.add_handler('machine_var_fast_audio_headphones_volume', self._set_volume, amp_name='headphones')
89
99
  self.platform.machine.events.add_handler('fast_audio_temp_volume', self.temp_volume)
90
100
  self.platform.machine.events.add_handler('fast_audio_restore', self.restore_volume)
91
101
  self.platform.machine.events.add_handler('fast_audio_pulse_lcd_pin', self.pulse_lcd_pin)
92
102
  self.platform.machine.events.add_handler('fast_audio_pulse_power_pin', self.pulse_power_pin)
93
103
  self.platform.machine.events.add_handler('fast_audio_pulse_reset_pin', self.pulse_reset_pin)
94
104
 
95
- def _create_levels_list(self, amp):
96
- steps = self.communicator.config[f'{amp}_steps']
97
- max_volume = self.communicator.config[f'max_hw_volume_{amp}']
105
+ def _create_levels_list(self, amp_name):
106
+ steps = self.communicator.config[f'{amp_name}_steps']
107
+ max_volume = self.communicator.config[f'max_hw_volume_{amp_name}']
98
108
  step_percent = 1 / steps
99
109
 
100
110
  if max_volume > 63:
101
- raise AssertionError(f"Invalid max_hw_volume_{amp}: {max_volume}")
111
+ raise AssertionError(f"Invalid max_hw_volume_{amp_name}: {max_volume}")
102
112
 
103
113
  for i in range(steps):
104
114
  volume = ceil(max_volume * (1 - (i * step_percent)))
105
- self.amps[amp]['levels_list'].append(volume)
115
+ self.amps[amp_name]['levels_list'].append(volume)
106
116
 
107
117
  # technically our list is number of volume levels + 1, since that's more logicial
108
118
  # for humans. e.g. 20 volume steps of 5% each is 0-100% volume, which
109
119
  # has 21 items in the list.
110
- self.amps[amp]['levels_list'].append(0)
111
- self.amps[amp]['levels_list'].reverse()
120
+ self.amps[amp_name]['levels_list'].append(0)
121
+ self.amps[amp_name]['levels_list'].reverse()
112
122
 
113
- def send_volume_to_hw(self, amp=None):
123
+ def send_volume_to_hw(self, amp_name=None, send_now=True):
114
124
  """Send the current volume to the hardware."""
115
- if amp is None:
116
- for amp in self.amps.keys():
117
- self.send_volume_to_hw(amp)
125
+ if amp_name is None:
126
+ for amp_name in self.amps.keys():
127
+ self.send_volume_to_hw(amp_name, send_now)
118
128
  return
119
129
 
120
- self.communicator.set_volume(amp, self.get_hw_volume(amp))
121
-
122
- def get_hw_volume(self, amp):
123
- try:
124
- return self.amps[amp]['levels_list'][self.get_volume(amp)]
125
- except IndexError:
126
- raise AssertionError(f"Invalid volume {self.get_volume(amp)} for amp: {amp}.",
127
- f"There are only {len(self.amps[amp]['levels_list'])} entries in the volume levels list.")
128
-
129
- def increase_volume(self, amp, change=1, **kwargs):
130
- """Increase the volume by the specified number of steps."""
131
- self.set_volume(amp, self.amps[amp]['volume'] + int(change))
130
+ self.communicator.set_volume(amp_name, self.get_volume(amp_name), send_now)
132
131
 
133
- def decrease_volume(self, amp, change=1, **kwargs):
134
- """Decrease the volume by the specified number of steps."""
135
- self.set_volume(amp, self.amps[amp]['volume'] - int(change))
136
-
137
- def set_volume(self, amp, value=0, **kwargs):
138
- """Set the amp volume to the specified level, using the volume map"""
132
+ def _set_volume(self, amp_name, value=0, **kwargs):
133
+ """Set the amp volume to the specified level, in absolute units.
134
+ This is a private method, volume changes should be instigated by
135
+ updating the corresponding machine variable."""
139
136
  value = int(value)
140
137
 
141
- if value > self.amps[amp]['steps']:
142
- value = self.amps[amp]['steps']
138
+ if value > self.amps[amp_name]['max_volume']:
139
+ value = self.amps[amp_name]['max_volume']
143
140
  elif value < 0:
144
141
  value = 0
145
142
 
146
- self.send_volume_to_hw(amp)
143
+ #self.platform.debug_log("Writing FAST amp volume %s to %s (decimal)", amp_name, value)
144
+ self.send_volume_to_hw(amp_name)
147
145
 
148
- for other_amp in self.amps.keys():
149
- if self.amps[other_amp]['link_to_main'] and other_amp != amp:
150
- self._set_machine_var_volume(other_amp, self.amps[amp]['levels_list'][value])
151
- self.send_volume_to_hw(other_amp)
146
+ if amp_name == 'main':
147
+ for other_amp_name in self.amps.keys():
148
+ if other_amp_name != amp_name and self.amps[other_amp_name]['link_to_main']:
149
+ # Update the machine var, which will be caught and handled
150
+ self._set_machine_var_volume(other_amp_name, value)
152
151
 
153
- def get_volume(self, amp, **kwargs):
154
- return self.machine.variables.get_machine_var(f'fast_audio_{amp}_volume')
152
+ def get_volume(self, amp_name, **kwargs):
153
+ return self.machine.variables.get_machine_var(f'fast_audio_{amp_name}_volume')
155
154
 
156
- def _set_machine_var_volume(self, amp, value):
157
- self.machine.variables.set_machine_var(f'fast_audio_{amp}_volume', value)
155
+ def _set_machine_var_volume(self, amp_name, value):
156
+ self.machine.variables.set_machine_var(f'fast_audio_{amp_name}_volume', value)
158
157
 
159
- def temp_volume(self, amp, change=1, **kwargs):
160
- """Temporarily change the volume by the specified number of steps, up or down,
158
+ def temp_volume(self, amp_name, change=1, **kwargs):
159
+ """Temporarily change the volume by the specified number of units, up or down,
161
160
  but without changing the machine var. This is used for ducking or other
162
161
  temporary volume changes where you don't want to save it to disk.
163
162
  """
164
163
  change = int(change)
165
- self.communicator.set_volume(amp, self.amps['main']['levels_list'][self.get_volume(amp) + change],
164
+ self.communicator.set_volume(amp_name, self.get_volume(amp_name) + change,
166
165
  send_now=True)
167
166
 
168
- def restore_volume(self, amp, **kwargs):
167
+ def restore_volume(self, amp_name, **kwargs):
169
168
  """Restore the volume to the value to the machine var value"""
170
- self.communicator.set_volume(amp, self.amps['main']['levels_list'][self.get_volume(amp)],
169
+ self.communicator.set_volume(amp_name, self.get_volume(amp_name),
171
170
  send_now=True)
172
171
 
173
172
  def pulse_lcd_pin(self, pin, ms=None, **kwargs):
@@ -194,3 +193,7 @@ class FASTAudioInterface(LogMixin):
194
193
  if not ms:
195
194
  ms = self.control_pin_pulse_times[7]
196
195
  self.communicator.pulse_control_pin(7, ms)
196
+
197
+ def save_settings_to_firmware(self, **kwargs):
198
+ del kwargs
199
+ self.communicator.save_settings_to_firmware()
@@ -64,8 +64,11 @@ class FastPortDetector:
64
64
  except SerialException:
65
65
  self.log.error(f"Could not connect to port {port}. Are you connected via CoolTerm? :)")
66
66
 
67
+ self.platform.debug_log(" - success connecting to port %s", port)
67
68
  self.task_writers[asyncio.current_task()] = writer
68
69
 
70
+ total_attempts = 5
71
+ attempts = 0
69
72
  while True:
70
73
  writer.write(b'ID:\r')
71
74
 
@@ -73,7 +76,11 @@ class FastPortDetector:
73
76
  try:
74
77
  data = await asyncio.wait_for(reader.read(100), timeout=1.0)
75
78
  except asyncio.TimeoutError:
76
- continue # retry
79
+ attempts += 1
80
+ if attempts < total_attempts:
81
+ continue # retry
82
+ else:
83
+ self.platform.debug_log("Unable to get ID: on port %s after %s retries.", port, total_attempts)
77
84
 
78
85
  if data:
79
86
  data = data.decode('utf-8', errors='ignore')
@@ -100,4 +107,4 @@ class FastPortDetector:
100
107
  def _cleanup_writer(self, task):
101
108
  writer = self.task_writers.pop(task, None)
102
109
  if writer:
103
- writer.close()
110
+ writer.close()
@@ -64,6 +64,7 @@ class OPPSolenoid(DriverPlatformInterface):
64
64
  msg.append((mask >> 8) & 0xff)
65
65
  msg.append(mask & 0xff)
66
66
  msg.extend(OppRs232Intf.calc_crc8_whole_msg(msg))
67
+ msg.extend(OppRs232Intf.EOM_CMD)
67
68
  cmd = bytes(msg)
68
69
  if self.sol_card.platform.debug:
69
70
  self.log.debug("Triggering solenoid driver: %s", "".join(" 0x%02x" % b for b in cmd))
@@ -224,7 +224,7 @@ class Auditor:
224
224
  self.current_audits['player'][item]['top'],
225
225
  self.config['num_player_top_records']))
226
226
 
227
- self.current_audits['player'][item]['average'] = (
227
+ self.current_audits['player'][item]['average'] = int(
228
228
  ((self.current_audits['player'][item]['total'] *
229
229
  self.current_audits['player'][item]['average']) +
230
230
  self.machine.game.player[item]) /
@@ -596,8 +596,9 @@ class MpfTestCase(unittest.TestCase):
596
596
  self.loop.run_once()
597
597
  if timeout and time.time() > start + timeout:
598
598
  raise AssertionError("Start took more than {}s".format(timeout))
599
-
600
599
  # trigger exception if there was one
600
+ if self._exception:
601
+ raise(self._exception['exception'])
601
602
  init.result()
602
603
 
603
604
  def _mock_event_handler(self, event_name, **kwargs):