*/
#include "lib/film.h"
+#include "lib/config.h"
+#include <RtAudio.h>
#include <wx/wx.h>
class wxToggleButton;
{
public:
FilmViewer (wxWindow *);
+ ~FilmViewer ();
void set_film (boost::shared_ptr<Film>);
/** @return our `playhead' position; this may not lie exactly on a frame boundary */
DCPTime position () const {
- return _position;
+ return _video_position;
}
void set_position (DCPTime p);
void refresh ();
+ int audio_callback (void* out, unsigned int frames);
+
boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged;
private:
void go_to (DCPTime t);
void jump_to_selected_clicked ();
void recreate_butler ();
+ void config_changed (Config::Property);
+ DCPTime time () const;
+ void start ();
+ bool stop ();
boost::shared_ptr<Film> _film;
boost::shared_ptr<Player> _player;
bool _pending_player_change;
boost::shared_ptr<const Image> _frame;
- DCPTime _position;
+ DCPTime _video_position;
Position<int> _inter_position;
dcp::Size _inter_size;
*/
bool _last_seek_accurate;
+ RtAudio _audio;
+ int _audio_channels;
+ unsigned int _audio_block_size;
+ bool _playing;
boost::shared_ptr<Butler> _butler;
+
+ boost::signals2::scoped_connection _config_changed_connection;
};