diff --git a/multimedia/bombono-dvd/bombono-dvd.SlackBuild b/multimedia/bombono-dvd/bombono-dvd.SlackBuild index c6529f4f1e..5b90d4d6d9 100644 --- a/multimedia/bombono-dvd/bombono-dvd.SlackBuild +++ b/multimedia/bombono-dvd/bombono-dvd.SlackBuild @@ -24,7 +24,7 @@ PRGNAM=bombono-dvd VERSION=${VERSION:-1.2.2} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -75,16 +75,28 @@ find -L . \ sed -i "s|-O2||" SConstruct # Allow use of cdrtools as an alternative to cdrkit, thanks gentoo patch -p1 < $CWD/patches/bombono-dvd-1.2.0-cdrtools.patch + # Fix for the newer ffmpeg - thanks ArchLinux patch -p1 < $CWD/patches/fix_ffmpeg_codecid.patch # Fix for ffmpeg-2.6.3 - thanks to Gentoo and John Vogel patch -p1 < $CWD/patches/bombono-dvd-1.2.2-ffmpeg26.patch +# Credit to ARCH Linux +patch -p1 < $CWD/patches/fix_ptr2bool_cast.patch +patch -p1 < $CWD/patches/fix_c++11_literal_warnings.patch +patch -p1 < $CWD/patches/fix_crefoftemp_bug.patch +patch -p1 < $CWD/patches/autoptr2uniqueptr.patch +patch -p1 < $CWD/patches/stream_bool_cast.patch +patch -p1 < $CWD/patches/boost.patch # Build package - scons \ CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS -Wno-unused-local-typedefs" \ + CPPFLAGS="-std=c++11 \ + -DBOOST_SYSTEM_NO_DEPRECATED \ + -DBOOST_FILESYSTEM_NO_DEPRECATED \ + -DBOOST_FILESYSTEM_VERSION=3" \ + USE_EXT_BOOST=1 \ PREFIX=/usr \ LIBDIR=/usr/lib${LIBDIRSUFFIX} \ DIST_TARGET="$TARGET" \ diff --git a/multimedia/bombono-dvd/patches/autoptr2uniqueptr.patch b/multimedia/bombono-dvd/patches/autoptr2uniqueptr.patch new file mode 100644 index 0000000000..ca4c045537 --- /dev/null +++ b/multimedia/bombono-dvd/patches/autoptr2uniqueptr.patch @@ -0,0 +1,12 @@ +--- bombono-dvd-1.2.2/libs/boost-logging/boost/logging/detail/tss/tss_impl_pthread.hpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/libs/boost-logging/boost/logging/detail/tss/tss_impl_pthread.hpp 2015-11-26 20:06:48.693423531 +0330 +@@ -39,7 +39,7 @@ + slots = static_cast( pthread_getspecific(tss_data_native_key())); + if (slots == 0) + { +- std::auto_ptr temp( new_object_ensure_delete() ); ++ std::unique_ptr temp( new_object_ensure_delete() ); + // pre-allocate a few elems, so that we'll be fast + temp->resize(BOOST_LOG_TSS_SLOTS_SIZE); + + diff --git a/multimedia/bombono-dvd/patches/boost.patch b/multimedia/bombono-dvd/patches/boost.patch new file mode 100644 index 0000000000..1bb95aaaa4 --- /dev/null +++ b/multimedia/bombono-dvd/patches/boost.patch @@ -0,0 +1,157 @@ +diff -ru bombono-dvd-1.2.2/src/mbase/project/table.cpp new/src/mbase/project/table.cpp +--- bombono-dvd-1.2.2/src/mbase/project/table.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mbase/project/table.cpp 2016-01-19 13:02:00.117338769 +0330 +@@ -154,7 +154,7 @@ + void SerializePath(Archieve& ar, const char* tag_name, std::string& fpath) + { + //ar & NameValue("Path", mdPath); +- fs::path rel_to_dir = fs::path(AData().GetProjectFName()).branch_path(); ++ fs::path rel_to_dir = fs::path(AData().GetProjectFName()).parent_path(); + if( ar.IsLoad() ) + { + ar >> NameValue(tag_name, fpath); +diff -ru bombono-dvd-1.2.2/src/mgui/author/script.cpp new/src/mgui/author/script.cpp +--- bombono-dvd-1.2.2/src/mgui/author/script.cpp 2016-01-19 12:54:07.640700667 +0330 ++++ new/src/mgui/author/script.cpp 2016-01-19 12:59:52.407346489 +0330 +@@ -676,7 +676,7 @@ + if( !fs::exists(font_path) ) + { + std::string err_str; +- if( !CreateDirs(font_path.branch_path(), err_str) ) ++ if( !CreateDirs(font_path.parent_path(), err_str) ) + Error(err_str.c_str()); + fs::copy_file(DataDirPath("copy-n-paste/FreeSans.ttf"), font_path); + } +diff -ru bombono-dvd-1.2.2/src/mgui/mux.cpp new/src/mgui/mux.cpp +--- bombono-dvd-1.2.2/src/mgui/mux.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/mux.cpp 2016-01-19 12:58:22.840685236 +0330 +@@ -162,7 +162,7 @@ + fs::path pth = GetFilename(v_btn); + if( pth.empty() ) + return; +- std::string folder = pth.branch_path().string(); ++ std::string folder = pth.parent_path().string(); + + if( a_btn.get_filename().empty() ) + a_btn.set_current_folder(folder); +diff -ru bombono-dvd-1.2.2/src/mgui/project/add.cpp new/src/mgui/project/add.cpp +--- bombono-dvd-1.2.2/src/mgui/project/add.cpp 2016-01-19 12:54:07.634034002 +0330 ++++ new/src/mgui/project/add.cpp 2016-01-19 13:00:49.220676388 +0330 +@@ -479,7 +479,7 @@ + MessageBox(BF_("The file \"%1%\" looks like VOB from DVD.\nRun import?") % leaf % bf::stop, + Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_OK_CANCEL) == Gtk::RESPONSE_OK ) + { +- DVD::RunImport(*GetTopWindow(brw), pth.branch_path().string()); ++ DVD::RunImport(*GetTopWindow(brw), pth.parent_path().string()); + return; + } + } +diff -ru bombono-dvd-1.2.2/src/mgui/project/serialize.cpp new/src/mgui/project/serialize.cpp +--- bombono-dvd-1.2.2/src/mgui/project/serialize.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/project/serialize.cpp 2016-01-19 13:00:29.230677594 +0330 +@@ -73,7 +73,7 @@ + fs::path full_path(db.GetProjectFName()); + std::string res_str = fs::name_str(full_path); + if( with_path_breakdown ) +- res_str += " (" + full_path.branch_path().string() + ")"; ++ res_str += " (" + full_path.parent_path().string() + ")"; + return res_str; + } + +diff -ru bombono-dvd-1.2.2/src/mgui/timeline/select.cpp new/src/mgui/timeline/select.cpp +--- bombono-dvd-1.2.2/src/mgui/timeline/select.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/timeline/select.cpp 2016-01-19 12:59:12.187348923 +0330 +@@ -152,7 +152,7 @@ + + mon.FramePixbuf()->save(fnam, ext); + +- SaveFrameDir() = fs::path(fnam).branch_path().string(); ++ SaveFrameDir() = fs::path(fnam).parent_path().string(); + if( add_btn.get_active() ) + Project::TryAddMediaQuiet(fnam, "SaveFrame"); + } +diff -ru bombono-dvd-1.2.2/src/mbase/project/table.cpp new/src/mbase/project/table.cpp +--- bombono-dvd-1.2.2/src/mbase/project/table.cpp 2016-01-19 13:11:42.883970202 +0330 ++++ new/src/mbase/project/table.cpp 2016-01-19 13:42:58.317190146 +0330 +@@ -162,7 +162,7 @@ + if( !fpath.empty() ) + { + fs::path pth(fpath); +- if( !pth.is_complete() ) ++ if( !pth.is_absolute() ) + fpath = (rel_to_dir/fpath).string(); + } + } +diff -ru bombono-dvd-1.2.2/src/mbase/project/tests/test_table.cpp new/src/mbase/project/tests/test_table.cpp +--- bombono-dvd-1.2.2/src/mbase/project/tests/test_table.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mbase/project/tests/test_table.cpp 2016-01-19 13:42:16.977192649 +0330 +@@ -129,7 +129,7 @@ + // проверка чтения/записи путей + boost::intrusive_ptr pict2 = ptr::dynamic_pointer_cast(ml[2]); + fs::path pth = pict2->GetPath(); +- BOOST_CHECK( pth.is_complete() ); ++ BOOST_CHECK( pth.is_absolute() ); + BOOST_CHECK( fs::exists(pth) ); + + // проверка ссылок +diff -ru bombono-dvd-1.2.2/src/mlib/tests/test_utils.cpp new/src/mlib/tests/test_utils.cpp +--- bombono-dvd-1.2.2/src/mlib/tests/test_utils.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mlib/tests/test_utils.cpp 2016-01-19 13:23:58.830592369 +0330 +@@ -139,17 +139,17 @@ + #endif + } + +- // is_complete ++ // is_absolute + { + fs::path pth("../some_file"); +- BOOST_CHECK( !pth.is_complete() ); +- BOOST_CHECK( fs::current_path().is_complete() ); ++ BOOST_CHECK( !pth.is_absolute() ); ++ BOOST_CHECK( fs::current_path().is_absolute() ); + + fs::path apth = Project::MakeAbsolutePath(pth); + //LOG_INF << "Making abs path: " << pth.string() << " => " << apth.string() << io::endl; + +- BOOST_CHECK( Project::MakeAbsolutePath(pth, MakeRootComplete("/")).is_complete() ); +- BOOST_CHECK( !Project::MakeAbsolutePath(pth, "./").is_complete() ); ++ BOOST_CHECK( Project::MakeAbsolutePath(pth, MakeRootComplete("/")).is_absolute() ); ++ BOOST_CHECK( !Project::MakeAbsolutePath(pth, "./").is_absolute() ); + } + + // MakeRelativeToDir +diff -ru bombono-dvd-1.2.2/src/mlib/filesystem.cpp new/src/mlib/filesystem.cpp +--- bombono-dvd-1.2.2/src/mlib/filesystem.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mlib/filesystem.cpp 2016-01-19 14:02:05.303787474 +0330 +@@ -161,25 +161,16 @@ + + fs::path MakeAbsolutePath(const fs::path& pth, const fs::path& cur_dir) + { +- fs::path res; +- +- if( pth.is_complete() ) +- res = pth; +- else +- { +- fs::path dir = cur_dir.empty() ? fs::current_path() : cur_dir ; +- res = dir/pth; +- } +- return res.normalize(); ++ return absolute(pth, cur_dir); + } + + // оба аргумента должны быть абсолютными путями + bool MakeRelativeToDir(fs::path& pth, fs::path dir) + { +- pth.normalize(); +- dir.normalize(); +- ASSERT( pth.is_complete() ); +- ASSERT( dir.is_complete() ); ++ pth = canonical(pth); ++ dir = canonical(dir); ++ ASSERT( pth.is_absolute() ); ++ ASSERT( dir.is_absolute() ); + + fs::path::iterator p_itr = pth.begin(), p_end = pth.end(); + fs::path::iterator d_itr = dir.begin(), d_end = dir.end(); + diff --git a/multimedia/bombono-dvd/patches/fix_c++11_literal_warnings.patch b/multimedia/bombono-dvd/patches/fix_c++11_literal_warnings.patch new file mode 100644 index 0000000000..b8fe387679 --- /dev/null +++ b/multimedia/bombono-dvd/patches/fix_c++11_literal_warnings.patch @@ -0,0 +1,168 @@ +--- bombono-dvd-1.2.2/src/mlib/regex.h 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mlib/regex.h 2015-11-20 18:37:26.167057488 +0330 +@@ -185,7 +185,7 @@ + #define RG_EW "\\>" // конец слова + #define RG_SPS "[[:space:]]*" // пробелы + #define RG_NUM "([0-9]+)" // число +-#define RG_FLT RG_NUM"([\\.,]"RG_NUM")" // вещ. число, в паре с ExtractDouble() ++#define RG_FLT RG_NUM "([\\.,]" RG_NUM ")" // вещ. число, в паре с ExtractDouble() + #define RG_CMD_BEG RG_BW // "^"RG_SPS // начало команды + + bool ExtractDouble(double& val, const re::match_results& what, int idx = 1); +--- bombono-dvd-1.2.2/src/mgui/author/burn.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/author/burn.cpp 2015-11-20 18:44:47.940364110 +0330 +@@ -85,7 +85,7 @@ + return bd; + } + +-re::pattern WriteSpeed_RE("Write Speed #"RG_NUM":"RG_SPS RG_NUM"\\."RG_NUM "x1385"); ++re::pattern WriteSpeed_RE("Write Speed #" RG_NUM ":" RG_SPS RG_NUM "\\." RG_NUM "x1385"); + + RefPtr sp_store; + +@@ -253,7 +253,7 @@ + } + else + { +- static re::pattern media_type_re("Mounted Media:"RG_SPS"[0-9A-F]+h, ([^ \n]+)"); ++ static re::pattern media_type_re("Mounted Media:" RG_SPS "[0-9A-F]+h, ([^ \n]+)"); + re::match_results what; + + bool is_found = re::search(out_info, what, media_type_re); +@@ -277,7 +277,7 @@ + // isBlank + if( res != dvdOTHER ) + { +- static re::pattern media_status_re("Disc status:"RG_SPS"([a-z]+)\n"); ++ static re::pattern media_status_re("Disc status:" RG_SPS "([a-z]+)\n"); + bool is_found = re::search(out_info, what, media_status_re); + ASSERT_RTL( is_found ); + +--- bombono-dvd-1.2.2/src/mgui/author/execute.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/author/execute.cpp 2015-11-20 18:47:25.260354601 +0330 +@@ -64,9 +64,9 @@ + tag->property_foreground() = "darkgreen"; + } + +-re::pattern DVDAuthorRE(RG_CMD_BEG"dvdauthor"RG_EW ".*-x"RG_EW RG_SPS RG_BW"DVDAuthor\\.xml"RG_EW); +-re::pattern MkIsoFsRE(RG_CMD_BEG MK_ISO_CMD RG_EW ".*-dvd-video"RG_EW ".*>.*"RG_BW"dvd.iso"RG_EW); +-re::pattern GrowIsoFsRE(RG_CMD_BEG"growisofs"RG_EW ".*-dvd-compat"RG_EW ".*-dvd-video"RG_EW); ++re::pattern DVDAuthorRE(RG_CMD_BEG"dvdauthor" RG_EW ".*-x" RG_EW RG_SPS RG_BW "DVDAuthor\\.xml" RG_EW); ++re::pattern MkIsoFsRE(RG_CMD_BEG MK_ISO_CMD RG_EW ".*-dvd-video" RG_EW ".*>.*" RG_BW "dvd.iso" RG_EW); ++re::pattern GrowIsoFsRE(RG_CMD_BEG"growisofs" RG_EW ".*-dvd-compat" RG_EW ".*-dvd-video" RG_EW); + + //static void PrintMatchResults(const re::match_results& what) + //{ +@@ -94,7 +94,7 @@ + virtual void Filter(const std::string& line); + }; + +-re::pattern MkIsoFsPercent_RE( RG_FLT"?% done"); ++re::pattern MkIsoFsPercent_RE( RG_FLT "?% done"); + + void MkIsoFsPP::Filter(const std::string& line) + { +@@ -126,8 +126,8 @@ + bool fixStage; + }; + +-re::pattern DVDAuthorVOB_RE( "^STAT: VOBU "RG_NUM" at "RG_NUM"MB"); +-re::pattern DVDAuthorFix_RE( "^STAT: fixing VOBU at "RG_NUM"MB \\("RG_NUM"/"RG_NUM", "RG_NUM"%\\)"); ++re::pattern DVDAuthorVOB_RE( "^STAT: VOBU " RG_NUM " at " RG_NUM "MB"); ++re::pattern DVDAuthorFix_RE( "^STAT: fixing VOBU at " RG_NUM "MB \\(" RG_NUM "/" RG_NUM ", " RG_NUM "%\\)"); + + void DVDAuthorPP::Filter(const std::string& line) + { +@@ -157,7 +157,7 @@ + if( p ) + of.SetProgress(p); + +- static re::pattern ch_error_re("ERR:.*Cannot jump to chapter "RG_NUM" of title "RG_NUM", only "RG_NUM" exist"); ++ static re::pattern ch_error_re("ERR:.*Cannot jump to chapter " RG_NUM " of title " RG_NUM ", only " RG_NUM " exist"); + if( re::search(line, what, ch_error_re) ) + { + std::string& err_str = of.firstError; +--- bombono-dvd-1.2.2/src/mgui/author/render.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/author/render.cpp 2015-11-20 18:50:40.550342794 +0330 +@@ -866,7 +866,7 @@ + // + // :KLUDGE: (только) в ffmpeg, avformat 53.13.0, поменяли . на : => надо + // самим открывать файл и узнавать индекс! +- static re::pattern audio_idx("Stream #"RG_NUM"[\\.|:]"RG_NUM".*Audio:"); ++ static re::pattern audio_idx("Stream #" RG_NUM "[\\.|:]" RG_NUM ".*Audio:"); + + re::match_results what; + // флаг означает, что перевод строки не может быть точкой +@@ -1221,17 +1221,17 @@ + { + CheckNoCodecs(CheckForCodecList(conts)); + +- static re::pattern dvd_format("^ .E dvd"RG_EW); ++ static re::pattern dvd_format("^ .E dvd" RG_EW); + CheckStrippedFFmpeg(dvd_format, conts, "dvd format"); + + // :TRICKY: с версии libavcodec 54 при выводе начальный пробел не ставят => поэтому ? + // ("спасибо" Anton Khirnov за очередное "улучшение") + #define _CPP_ "^ ?" +- static re::pattern mpeg2video_codec(_CPP_".EV... mpeg2video"RG_EW); ++ static re::pattern mpeg2video_codec(_CPP_ ".EV... mpeg2video" RG_EW); + CheckStrippedFFmpeg(mpeg2video_codec, conts, "mpeg2 video encoder"); + + // по факту ffmpeg всегда использует ac3, однако mp2 тоже возможен +- static re::pattern ac3_codec(_CPP_".EA... ac3"RG_EW); ++ static re::pattern ac3_codec(_CPP_ ".EA... ac3" RG_EW); + CheckStrippedFFmpeg(ac3_codec, conts, "ac3 audio encoder"); + #undef _CPP_ + } +@@ -1241,7 +1241,7 @@ + // * ищем версию libavfilter + // пример: " libavfilter 0. 4. 0 / " + #define RG_PADNUM RG_SPS RG_NUM +- std::string reg_str = boost::format(RG_BW"%1%"RG_PADNUM"\\."RG_PADNUM"\\."RG_PADNUM" / ") ++ std::string reg_str = boost::format(RG_BW "%1%" RG_PADNUM "\\." RG_PADNUM "\\." RG_PADNUM " / ") + % avlib_name % bf::stop; + re::pattern avfilter_version(reg_str.c_str()); + return FindVersion(conts, avfilter_version, AVCnvBin(), avlib_name); +--- bombono-dvd-1.2.2/src/mgui/author/script.cpp 2015-11-20 18:40:35.770379359 +0330 ++++ new/src/mgui/author/script.cpp 2015-11-20 19:02:42.020299175 +0330 +@@ -755,9 +755,9 @@ + // ffmpeg выводит статистику первого создаваемого файла каждые полсекунды, + // см. print_report() (при verbose=1, по умолчанию) + // Формат размера: "size=%8.0fkB" +-re::pattern FFmpegSizePat( "size= *"RG_NUM"kB"); ++re::pattern FFmpegSizePat( "size= *" RG_NUM "kB"); + // Формат длительности: "time=%0.2f" +-re::pattern FFmpegDurPat( "time="RG_FLT); ++re::pattern FFmpegDurPat( "time=" RG_FLT); + + static void OnTranscodePrintParse(const char* dat, int sz, const PercentFunctor& fnr) + { +@@ -787,7 +787,7 @@ + + // Формат длительности для ffmpeg c коммита dd471070: "time=%02d:%02d:%02d.%02d" + // Образец: frame= 208 fps= 58 q=2.0 size= 476kB time=00:00:08.44 bitrate= 461.9kbits/s dup=1 drop=0 +-re::pattern FFmpegNewDurPat( "time="RG_NUM":"RG_NUM":"RG_FLT); ++re::pattern FFmpegNewDurPat( "time=" RG_NUM ":" RG_NUM ":" RG_FLT); + + static void OnTranscodeHMSParse(const char* dat, int sz, const PercentFunctor& fnr) + { +@@ -1136,7 +1136,7 @@ + // 2) парсер dvdauthor не любит незнакомые ему атрибуты => spumux < 0.7 не работает + std::string help_str; + PipeOutput("spumux -h", help_str); +- static re::pattern spumux_version("DVDAuthor::spumux, version "RG_NUM"\\."RG_NUM"\\."RG_NUM"\\.\n"); ++ static re::pattern spumux_version("DVDAuthor::spumux, version " RG_NUM "\\." RG_NUM "\\." RG_NUM "\\.\n"); + if( IsVersionGE(FindVersion(help_str, spumux_version, "spumux"), TripleVersion(0, 7, 0)) ) + AddFormatAttr(sp); + +--- bombono-dvd-1.2.2/src/mgui/project/browser.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/project/browser.cpp 2015-11-20 19:03:52.983628220 +0330 +@@ -328,7 +328,7 @@ + return hb; + } + +-std::string MediaItemDnDTVType() { return "DnDTreeView<"DND_MI_NAME">"; } ++std::string MediaItemDnDTVType() { return "DnDTreeView<" DND_MI_NAME ">"; } + + void SetupBrowser(ObjectBrowser& brw, int dnd_column, bool is_media_brw) + { diff --git a/multimedia/bombono-dvd/patches/fix_crefoftemp_bug.patch b/multimedia/bombono-dvd/patches/fix_crefoftemp_bug.patch new file mode 100644 index 0000000000..0ef7f942a8 --- /dev/null +++ b/multimedia/bombono-dvd/patches/fix_crefoftemp_bug.patch @@ -0,0 +1,21 @@ +--- bombono-dvd-1.2.2/src/mgui/project/menu-actions.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/project/menu-actions.cpp 2015-11-20 19:17:23.516912549 +0330 +@@ -187,7 +187,7 @@ + txt.MediaItem().ClearLink(); + } + +-void UpdateMenuRegionObject(Comp::Object* obj, const Point& menu_sz, RectListRgn& lst) ++void UpdateMenuRegionObject(Comp::Object* obj, Point menu_sz, RectListRgn& lst) + { + MenuRegionEraserVis vis(obj, menu_sz, lst); + //PrimaryRegionEraserVis vis(obj, false); +@@ -198,7 +198,7 @@ + { + CanvasBuf& cb = mp.thRgn.GetCanvasBuf(); + ForeachLinked(mp.Owner(), bb::bind(&UpdateMenuRegionObject, +- _1, boost::cref(cb.Size()), ++ _1, cb.Size(), + boost::ref(cb.RenderList()))); + } + + diff --git a/multimedia/bombono-dvd/patches/fix_ptr2bool_cast.patch b/multimedia/bombono-dvd/patches/fix_ptr2bool_cast.patch new file mode 100644 index 0000000000..ac67dc8731 --- /dev/null +++ b/multimedia/bombono-dvd/patches/fix_ptr2bool_cast.patch @@ -0,0 +1,77 @@ +--- bombono-dvd-1.2.2/src/mgui/dvdimport.cpp 2015-11-20 18:22:23.123778752 +0330 ++++ new/src/mgui/dvdimport.cpp 2015-11-20 18:22:11.813779436 +0330 +@@ -275,7 +275,7 @@ + id.errLbl.hide(); + + id.reader = rd; +- SetCurPageComplete(id.ast, id.reader); ++ SetCurPageComplete(id.ast, id.reader != nullptr); + + return rd; + } +--- bombono-dvd-1.2.2/src/mgui/author/script.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/author/script.cpp 2015-11-20 18:29:40.877085620 +0330 +@@ -279,7 +279,7 @@ + + ASSERT_RTL( vi || mn ); + // VTS domain +- bool is_video = vi; ++ bool is_video = vi != nullptr; + const PostAction& pa = is_video ? vi->PAction() : mn->MtnData().pAct ; + + std::string jnt_cmd; +--- bombono-dvd-1.2.2/src/mgui/project/add.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/project/add.cpp 2015-11-20 18:40:01.493714764 +0330 +@@ -415,7 +415,7 @@ + { + std::string err_str; + Gtk::TreePath pth; +- bool res = TryAddMedia(fname.c_str(), pth, err_str); ++ bool res = TryAddMedia(fname.c_str(), pth, err_str) != nullptr; + if( !res ) + { + LOG_ERR << "TryAddMediaQuiet error (" << desc << "): " << err_str << io::endl; +@@ -538,7 +538,7 @@ + continue; + } + +- bool res = TryAddMedia(fpath.c_str(), brw_pth, err_str, insert_after); ++ bool res = TryAddMedia(fpath.c_str(), brw_pth, err_str, insert_after) != nullptr; + if( res ) + { + insert_after = true; // вставляем друг за другом +--- bombono-dvd-1.2.2/src/mgui/project/media-browser.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/project/media-browser.cpp 2015-11-20 19:06:49.926950853 +0330 +@@ -854,7 +854,7 @@ + Gtk::MenuItem& ea_itm = AppendMI(mn, NewManaged(_("End Action"))); + // только видео + VideoItem vi = IsVideo(mi); +- if( SetEnabled(ea_itm, vi) ) ++ if( SetEnabled(ea_itm, vi != nullptr) ) + ea_itm.set_submenu(EndActionMenuBld(vi->PAction(), boost::function_identity, + VideoAddConstantChoice).Create()); + +@@ -863,10 +863,10 @@ + // калькулятор + AddDialogItem(mn, DialogParams(_("Bitrate Calculator"), bb::bind(&RunBitrateCalc, vi, _1, b::ref(brw)), + 350, &brw), tr_enabled); +- AddEnabledItem(mn, _("Reason For Transcoding"), bb::bind(&ShowDVDCompliantStatus, vi), vi); ++ AddEnabledItem(mn, _("Reason For Transcoding"), bb::bind(&ShowDVDCompliantStatus, vi), vi != nullptr); + AppendSeparator(mn); + +- AddDialogItem(mn, SubtitlesDialog(vi, &brw), vi); ++ AddDialogItem(mn, SubtitlesDialog(vi, &brw), vi != nullptr); + + Popup(mn, event, true); + } +--- bombono-dvd-1.2.2/src/mgui/project/thumbnail.cpp 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/project/thumbnail.cpp 2015-11-20 19:22:23.963561051 +0330 +@@ -410,7 +410,7 @@ + { + if( AData().FirstPlayItem() != mi ) + return; +- bool is_menu = IsMenu(mi); ++ bool is_menu = IsMenu(mi) != nullptr; + RefPtr emblem = GetCheckEmblem(pix, is_menu + ? "copy-n-paste/HelixPlayer_Activity-watch-listen/28.png" + : "copy-n-paste/HelixPlayer_Activity-watch-listen/16.png"); diff --git a/multimedia/bombono-dvd/patches/stream_bool_cast.patch b/multimedia/bombono-dvd/patches/stream_bool_cast.patch new file mode 100644 index 0000000000..b5bf9c1d4c --- /dev/null +++ b/multimedia/bombono-dvd/patches/stream_bool_cast.patch @@ -0,0 +1,13 @@ +--- bombono-dvd-1.2.2/src/mgui/stream_utils.h 2013-03-08 00:50:45.000000000 +0330 ++++ new/src/mgui/stream_utils.h 2015-11-26 20:37:42.780113771 +0330 +@@ -42,8 +42,8 @@ + stream(std::iostream& strm): io_strm(strm) {} + + std::iostream& strm() { return io_strm; } +- operator void*() const { return (void*)io_strm; } +- bool operator!() const { return !operator void*(); } ++ operator bool() const { return static_cast (io_strm); } ++ bool operator!() const { return !operator bool(); } + stream& seekg(streamoff off, ios_base::seekdir dir) + { io_strm.seekg(off, dir); return *this; } + stream& seekp(streamoff off, ios_base::seekdir dir)