std::vector<title> titles;
};
+ void generate_dvd(const dvd_contents & contents,
+ const std::string & output_dir);
+
class webdvd_window : public Gtk::Window
{
public:
void process_links(nsIPresShell * pres_shell,
nsIPresContext * pres_context,
nsIDOMWindow * dom_window);
- void generate_dvd();
video::frame_params frame_params_;
std::string output_dir_;
page_queue_.pop();
if (page_queue_.empty())
{
- generate_dvd();
+ generate_dvd(contents_, output_dir_);
return false;
}
else
}
}
- void webdvd_window::generate_dvd()
+ void generate_dvd(const dvd_contents & contents,
+ const std::string & output_dir)
{
temp_file temp("webdvd-dvdauthor-");
temp.close();
" <menus>\n";
for (std::size_t menu_num = 0;
- menu_num != contents_.menus.size();
+ menu_num != contents.menus.size();
++menu_num)
{
- dvd_contents::menu & menu = contents_.menus[menu_num];
+ const dvd_contents::menu & menu = contents.menus[menu_num];
if (menu_num == 0)
{
menu_incr != 0;
menu_incr /= 2)
{
- if (menu_num + menu_incr < contents_.menus.size()
+ if (menu_num + menu_incr < contents.menus.size()
&& (menu_num & (menu_incr * 2 - 1)) == 0)
{
file <<
// first button.
const std::vector<dvd_contents::pgc_ref> &
dest_menu_entries =
- contents_.menus[dest_menu_num].entries;
+ contents.menus[dest_menu_num].entries;
dvd_contents::pgc_ref this_pgc(
dvd_contents::menu_pgc, menu_num);
std::size_t dest_button_num = dest_menu_entries.size();
// jumping to titles a whole lot simpler (but limits us to 99
// titles).
for (std::size_t title_num = 0;
- title_num != contents_.titles.size();
+ title_num != contents.titles.size();
++title_num)
{
file <<
" <pgc>\n"
// Record calling location.
" <pre> g12 = g1; </pre>\n"
- << contents_.titles[title_num].vob_list <<
+ << contents.titles[title_num].vob_list <<
// If the menu location has not been changed during
// the title, set the location to be the following
// button in the menu. In any case, return to some
{
const char * argv[] = {
"dvdauthor",
- "-o", output_dir_.c_str(),
+ "-o", output_dir.c_str(),
"-x", temp.get_name().c_str(),
0
};