OSDN Git Service

[VM] Merge Upstream 2018-12-09.
[csp-qt/common_source_project-fm7.git] / source / src / vm / msx / msx_ex.cpp
index 8626e9d..134f351 100644 (file)
@@ -554,14 +554,22 @@ bool VM::is_cart_inserted(int drv)
 
 void VM::play_tape(int drv, const _TCHAR* file_path)
 {
-       drec->play_tape(file_path);
-//     drec->set_remote(true);
+       bool remote = drec->get_remote();
+       
+       if(drec->play_tape(file_path) && remote) {
+               // if machine already sets remote on, start playing now
+               push_play(drv);
+       }
 }
 
 void VM::rec_tape(int drv, const _TCHAR* file_path)
 {
-       drec->rec_tape(file_path);
-//     drec->set_remote(true);
+       bool remote = drec->get_remote();
+       
+       if(drec->rec_tape(file_path) && remote) {
+               // if machine already sets remote on, start recording now
+               push_play(drv);
+       }
 }
 
 void VM::close_tape(int drv)
@@ -569,7 +577,7 @@ void VM::close_tape(int drv)
        emu->lock_vm();
        drec->close_tape();
        emu->unlock_vm();
-//     drec->set_remote(false);
+       drec->set_remote(false);
 }
 
 bool VM::is_tape_inserted(int drv)
@@ -599,6 +607,7 @@ const _TCHAR* VM::get_tape_message(int drv)
 
 void VM::push_play(int drv)
 {
+       drec->set_remote(false);
        drec->set_ff_rew(0);
        drec->set_remote(true);
 }
@@ -610,12 +619,14 @@ void VM::push_stop(int drv)
 
 void VM::push_fast_forward(int drv)
 {
+       drec->set_remote(false);
        drec->set_ff_rew(1);
        drec->set_remote(true);
 }
 
 void VM::push_fast_rewind(int drv)
 {
+       drec->set_remote(false);
        drec->set_ff_rew(-1);
        drec->set_remote(true);
 }