summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-01-10 21:54:45 +0000
committerCarl Hetherington <cth@carlh.net>2013-01-10 21:54:45 +0000
commit0b45af42b5a30c3a71d2e1de491843d125e46793 (patch)
tree8b7e55d9f8ab53cb115c56779bd4e1df23ba6b62 /src
parent6bfdd0f45927a4dfecf10e851b1902a899de5aa2 (diff)
Fixes to times for KDMs.
Diffstat (limited to 'src')
-rw-r--r--src/lib/film.cc5
-rw-r--r--src/lib/film.h7
-rw-r--r--src/tools/dvdomatic.cc6
-rw-r--r--src/wx/kdm_dialog.cc21
-rw-r--r--src/wx/kdm_dialog.h7
5 files changed, 33 insertions, 13 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 1b53b3d3e..012495226 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -65,6 +65,7 @@ using std::ofstream;
using std::setfill;
using std::min;
using std::make_pair;
+using std::list;
using std::cout;
using boost::shared_ptr;
using boost::lexical_cast;
@@ -1388,8 +1389,8 @@ Film::audio_stream () const
void
Film::make_kdms (
list<shared_ptr<Screen> >,
- boost::locale::date_time from,
- boost::locale::date_time until,
+ boost::posix_time::ptime from,
+ boost::posix_time::ptime until,
string directory
) const
{
diff --git a/src/lib/film.h b/src/lib/film.h
index c9d99dae3..b119d59a6 100644
--- a/src/lib/film.h
+++ b/src/lib/film.h
@@ -32,6 +32,7 @@
#include <boost/thread.hpp>
#include <boost/signals2.hpp>
#include <boost/enable_shared_from_this.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
extern "C" {
#include <libavcodec/avcodec.h>
}
@@ -103,10 +104,10 @@ public:
void make_kdms (
std::list<boost::shared_ptr<Screen> >,
- boost::locale::date_time from,
- boost::locale::date_time until,
+ boost::posix_time::ptime from,
+ boost::posix_time::ptime until,
std::string directory
- );
+ ) const;
enum Property {
NONE,
diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc
index 7d7adcce8..b6662f281 100644
--- a/src/tools/dvdomatic.cc
+++ b/src/tools/dvdomatic.cc
@@ -337,9 +337,13 @@ public:
void jobs_make_kdms (wxCommandEvent &)
{
+ if (!film) {
+ return;
+ }
+
KDMDialog* d = new KDMDialog (this);
if (d->ShowModal () == wxID_OK) {
- _film->make_kdms (
+ film->make_kdms (
d->screens (),
d->from (),
d->until (),
diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc
index 43d904d90..0febdf38e 100644
--- a/src/wx/kdm_dialog.cc
+++ b/src/wx/kdm_dialog.cc
@@ -329,7 +329,7 @@ KDMDialog::screens () const
list<pair<wxTreeItemId, shared_ptr<Cinema> > > cinemas = selected_cinemas ();
for (list<pair<wxTreeItemId, shared_ptr<Cinema> > >::iterator i = cinemas.begin(); i != cinemas.end(); ++i) {
- for (list<Screen>::iterator j = i->second->screens.begin(); j != i->second->screens.end(); ++j) {
+ for (list<shared_ptr<Screen> >::iterator j = i->second->screens.begin(); j != i->second->screens.end(); ++j) {
s.push_back (*j);
}
}
@@ -340,21 +340,32 @@ KDMDialog::screens () const
}
s.sort ();
- s.uniq ();
+ s.unique ();
return s;
}
-boost::locale::date_time
+boost::posix_time::ptime
KDMDialog::from () const
{
+ return posix_time (_from_date, _from_time);
+}
+boost::posix_time::ptime
+KDMDialog::posix_time (wxDatePickerCtrl* date_picker, wxTimePickerCtrl* time_picker)
+{
+ wxDateTime const date = date_picker->GetValue ();
+ wxDateTime const time = time_picker->GetValue ();
+ return boost::posix_time::ptime (
+ boost::gregorian::date (date.GetYear(), date.GetMonth() + 1, date.GetDay()),
+ boost::posix_time::time_duration (time.GetHour(), time.GetMinute(), time.GetSecond())
+ );
}
-boost::locale::date_time
+boost::posix_time::ptime
KDMDialog::until () const
{
-
+ return posix_time (_until_date, _until_time);
}
string
diff --git a/src/wx/kdm_dialog.h b/src/wx/kdm_dialog.h
index d161223a8..ac2db9b95 100644
--- a/src/wx/kdm_dialog.h
+++ b/src/wx/kdm_dialog.h
@@ -19,6 +19,7 @@
#include <map>
#include <boost/shared_ptr.hpp>
+#include <boost/date_time/posix_time/posix_time.hpp>
#include <wx/wx.h>
#include <wx/treectrl.h>
@@ -37,8 +38,8 @@ public:
KDMDialog (wxWindow *);
std::list<boost::shared_ptr<Screen> > screens () const;
- boost::local::date_time from () const;
- boost::local::date_time until () const;
+ boost::posix_time::ptime from () const;
+ boost::posix_time::ptime until () const;
std::string directory () const;
private:
@@ -54,6 +55,8 @@ private:
std::list<std::pair<wxTreeItemId, boost::shared_ptr<Cinema> > > selected_cinemas () const;
std::list<std::pair<wxTreeItemId, boost::shared_ptr<Screen> > > selected_screens () const;
void setup_sensitivity ();
+
+ static boost::posix_time::ptime posix_time (wxDatePickerCtrl *, wxTimePickerCtrl *);
wxTreeCtrl* _targets;
wxButton* _add_cinema;