3 #include "core/movie.hpp"
10 movie_logic::movie_logic() throw()
12 frob_with_value
= [](unsigned a
, unsigned b
, unsigned c
, unsigned d
) {};
18 void movie_logic::set_movie(movie
& _mov
, bool free_old
) throw()
22 mov
->set_frob_with_value(frob_with_value
);
23 if(free_old
) delete tmp
;
26 movie
& movie_logic::get_movie()
29 throw std::runtime_error("No movie");
33 void movie_logic::set_mfile(moviefile
& _mf
, bool free_old
) throw()
37 if(free_old
) delete tmp
;
40 moviefile
& movie_logic::get_mfile()
43 throw std::runtime_error("No movie");
47 void movie_logic::set_rrdata(rrdata_set
& _rrd
, bool free_old
) throw()
51 if(free_old
) delete tmp
;
54 rrdata_set
& movie_logic::get_rrdata()
57 throw std::runtime_error("No movie");
61 void movie_logic::new_frame_starting(bool dont_poll
)
64 portctrl::frame c
= update_controls(false);
65 if(!mov
->readonly_mode()) {
73 short movie_logic::input_poll(unsigned port
, unsigned dev
, unsigned id
)
77 //If this is for something else than 0-0-x, drop out of poll advance if any.
79 if(port
|| dev
) force
= notify_user_poll();
80 if(!mov
->get_DRDY(port
, dev
, id
) || force
) {
81 mov
->set_controls(update_controls(true, force
));
84 return mov
->next_input(port
, dev
, id
);
87 void movie_logic::release_memory()
97 void movie_logic::set_frob_with_value(std::function
<void(unsigned,unsigned,unsigned,short&)> func
)
99 frob_with_value
= func
;
100 if(mov
) mov
->set_frob_with_value(func
);