Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opt: Add full winapi support. #3934

Open
wants to merge 6 commits into
base: dev
Choose a base branch
from
Open

Conversation

PPPlatelet
Copy link
Contributor

@PPPlatelet PPPlatelet commented Jun 27, 2024

  • TODO:Send messagebox

@PPPlatelet
Copy link
Contributor Author

ready for review. @LmeSzinc

@LmeSzinc
Copy link
Owner

LmeSzinc commented Aug 16, 2024

  1. 需要解决这个问题,需要讨论两种方案

目前 EmulatorNotRunningError 是在 Device 类初始化时处理,在调度器内处理意味着启动模拟器是作为一个调度器任务去运行。你需要决定是作为设备模块的内部异常去处理,还是作为调度器的任务去处理,不能到处塞 workaround
#3867 (comment)

  1. 减少设置数量,仅为 WhenTaskQueueEmpty 增加关闭模拟器的选项,模拟器启动就是静默启动,不需要设置
  2. 仅添加实现 无任务时关闭模拟器 和 静默启动模拟器 的代码,无关代码不要全部复制粘贴进来

确定方向再开始写代码

@PPPlatelet
Copy link
Contributor Author

PPPlatelet commented Sep 9, 2024

  1. 需要解决这个问题,需要讨论两种方案

目前 EmulatorNotRunningError 是在 Device 类初始化时处理,在调度器内处理意味着启动模拟器是作为一个调度器任务去运行。你需要决定是作为设备模块的内部异常去处理,还是作为调度器的任务去处理,不能到处塞 workaround
#3867 (comment)

  1. 减少设置数量,仅为 WhenTaskQueueEmpty 增加关闭模拟器的选项,模拟器启动就是静默启动,不需要设置
  2. 仅添加实现 无任务时关闭模拟器 和 静默启动模拟器 的代码,无关代码不要全部复制粘贴进来

确定方向再开始写代码

  1. 目前正在实现中,初步的计划是在run loop捕获异常时检查,但尚不清楚模拟器因任何可能的原因崩溃,run loop会捕获到什么异常。有必要将builtins的Exception和Alas自定义的Exception严格区分,所有自定义的异常应当继承自一个AlasBaseException。
  2. 可以接受删除BufferMethod,应当保留ProcessBufferTime,过于频繁的启停只会引起不必要的负担;静默启动应当由用户自行决定,有些用户更喜欢视奸(,有些更喜欢偶尔看一眼运行情况,有些用户更喜欢完全无感运行。
  3. 目前这一次推送并非最终版本,多数代码需要进一步测试,烦请暂时保留。
  4. TODO条目目前还在开发中(新建文件夹),难度较大需要摇人

@antecanis8
Copy link

Send notify是指windows通知吗?如果是不妨试试win11toast库?

@PPPlatelet
Copy link
Contributor Author

PPPlatelet commented Oct 9, 2024

  1. 需要解决这个问题,需要讨论两种方案

目前 EmulatorNotRunningError 是在 Device 类初始化时处理,在调度器内处理意味着启动模拟器是作为一个调度器任务去运行。你需要决定是作为设备模块的内部异常去处理,还是作为调度器的任务去处理,不能到处塞 workaround
#3867 (comment)

  1. 减少设置数量,仅为 WhenTaskQueueEmpty 增加关闭模拟器的选项,模拟器启动就是静默启动,不需要设置
  2. 仅添加实现 无任务时关闭模拟器 和 静默启动模拟器 的代码,无关代码不要全部复制粘贴进来

确定方向再开始写代码

  1. 目前正在实现中,初步的计划是在run loop捕获异常时检查,但尚不清楚模拟器因任何可能的原因崩溃,run loop会捕获到什么异常。有必要将builtins的Exception和Alas自定义的Exception严格区分,所有自定义的异常应当继承自一个AlasBaseException。
  2. 可以接受删除BufferMethod,应当保留ProcessBufferTime,过于频繁的启停只会引起不必要的负担;静默启动应当由用户自行决定,有些用户更喜欢视奸(,有些更喜欢偶尔看一眼运行情况,有些用户更喜欢完全无感运行。
  3. 目前这一次推送并非最终版本,多数代码需要进一步测试,烦请暂时保留。
  4. TODO条目目前还在开发中(新建文件夹),难度较大需要摇人
  1. Opt: ALASBaseError (fixed) #4270
  2. 保留意见,若确定要删除BufferMethod则会在BufferTime内使用close_game
  3. 测试代码已经删除,TODO条目已开发完成,感谢@antecanis8 的推荐,send notify可以通过导入win11toast来实现,这是一个功能齐全的发送通知的库,唯一的缺点是只能用于Windows10、11;由于可以点击通知跳转第三方链接,有被merge恶意代码的风险,推荐的做法是增加一个抽象层

@PPPlatelet
Copy link
Contributor Author

请求review @LmeSzinc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
emulator issue / 模拟器问题 Issues caused by emulator, change emulator instead 需要修改 / Request changes Changes required in PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants