X-Git-Url: https://git.decadent.org.uk/gitweb/?p=videolink.git;a=blobdiff_plain;f=videolink.cpp;h=e0b71d8acc981ddf3b7aee6a2bdda2f26475ead8;hp=5867023ae9aa0b0e8d0511b8dbe6017d096ea4b5;hb=99e4995e0cc45aac43ae85fdb47650c19f115841;hpb=814b5048b5fbd960fe9e1bdcf3cc4ca980cfd74e diff --git a/videolink.cpp b/videolink.cpp index 5867023..e0b71d8 100644 --- a/videolink.cpp +++ b/videolink.cpp @@ -1,4 +1,4 @@ -// Copyright 2005-6 Ben Hutchings . +// Copyright 2005-8 Ben Hutchings . // See the file "COPYING" for licence details. #include @@ -22,7 +22,14 @@ #include #include +#include "videolink.hpp" +#include "wchar_t_short.h" #include +#if MOZ_VERSION_GE(1,9,0) +#include +/* For some reason no longer defines this */ +typedef nsCOMPtr nsWeakPtr; +#endif #include #include #include @@ -42,16 +49,21 @@ #include // required before nsILink.h #include #include -#include #include #include #include #include +#ifdef MOZILLA_INTERNAL_API #include +#else +#include +#endif +#include "wchar_t_default.h" #include "browser_widget.hpp" #include "child_iterator.hpp" #include "dvd.hpp" +#include "event_state_manager.hpp" #include "generate_dvd.hpp" #include "geometry.hpp" #include "link_iterator.hpp" @@ -237,8 +249,7 @@ namespace bool process_links( page_state * state, nsIDOMDocument * basic_doc, - nsIPresShell * pres_shell, - nsPresContext * pres_context, + nsIDocShell * doc_shell, nsIDOMWindow * dom_window); std::string output_dir_; @@ -508,10 +519,6 @@ namespace nsCOMPtr browser(browser_widget_.get_browser()); nsCOMPtr doc_shell(do_GetInterface(browser)); assert(doc_shell); - nsCOMPtr pres_shell; - check(doc_shell->GetPresShell(getter_AddRefs(pres_shell))); - nsCOMPtr pres_context; - check(doc_shell->GetPresContext(getter_AddRefs(pres_context))); nsCOMPtr dom_window; check(browser->GetContentDOMWindow(getter_AddRefs(dom_window))); @@ -524,9 +531,7 @@ namespace new page_state( get_screenshot(), basic_doc, frame_params_.width, frame_params_.height)); - if (!process_links( - page_state_.get(), - basic_doc, pres_shell, pres_context, dom_window)) + if (!process_links(page_state_.get(), basic_doc, doc_shell, dom_window)) { // We've finished work on the links so generate the // menu VOB. @@ -569,8 +574,7 @@ namespace bool conversion_window::process_links( page_state * state, nsIDOMDocument * basic_doc, - nsIPresShell * pres_shell, - nsPresContext * pres_context, + nsIDocShell * doc_shell, nsIDOMWindow * dom_window) { Glib::RefPtr window(get_window()); @@ -578,8 +582,10 @@ namespace nsCOMPtr ns_doc(do_QueryInterface(basic_doc)); assert(ns_doc); + nsCOMPtr pres_shell; + check(doc_shell->GetPresShell(getter_AddRefs(pres_shell))); nsCOMPtr event_state_man( - pres_context->EventStateManager()); // does not AddRef + get_event_state_manager(doc_shell)); assert(event_state_man); nsCOMPtr event_factory( do_QueryInterface(basic_doc)); @@ -610,8 +616,9 @@ namespace { nsCString link_target_ns; check(uri_iface->GetSpec(link_target_ns)); - state->link_target.assign(link_target_ns.BeginReading(), - link_target_ns.EndReading()); + const char * str; + PRUint32 len = NS_CStringGetData(link_target_ns, &str); + state->link_target.assign(str, len); std::size_t hash_pos = state->link_target.find('#'); uri.assign(state->link_target, 0, hash_pos); @@ -758,7 +765,7 @@ namespace "Usage: " << command_name << " [gtk-options] [--preview]\n" " [--video-std {525|525/60|NTSC|ntsc" " | 625|625/50|PAL|pal}]\n" - " [--encoder {mjpegtools|mjpegtools-old}]\n" + " [--encoder {ffmpeg|mjpegtools}]\n" " menu-url [output-dir]\n"; } @@ -909,14 +916,9 @@ int main(int argc, char ** argv) { encoder = dvd_generator::mpeg_encoder_ffmpeg; } - else if (std::strcmp(argv[argi + 1], "mjpegtools-old") == 0) - { - encoder = dvd_generator::mpeg_encoder_mjpegtools_old; - } - else if (std::strcmp(argv[argi + 1], "mjpegtools") == 0 - || std::strcmp(argv[argi + 1], "mjpegtools-new") == 0) + else if (std::strcmp(argv[argi + 1], "mjpegtools") == 0) { - encoder = dvd_generator::mpeg_encoder_mjpegtools_new; + encoder = dvd_generator::mpeg_encoder_mjpegtools; } else {