From eae83763fb607ac0b7381ec06ce2b2e595def7ea Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 25 Feb 2007 20:53:55 +0000 Subject: [PATCH] new crossfade editor button icons from thorsten; ignore loop+range markers when looking for next/previous locations git-svn-id: svn://localhost/ardour2/trunk@1506 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/crossfade_edit.cc | 34 +++++++++++------- gtk2_ardour/crossfade_edit.h | 5 ++- gtk2_ardour/icons/crossfade_in_constant.png | Bin 0 -> 693 bytes gtk2_ardour/icons/crossfade_in_dipped.png | Bin 0 -> 667 bytes gtk2_ardour/icons/crossfade_in_fast-cut.png | Bin 0 -> 686 bytes gtk2_ardour/icons/crossfade_in_slow-cut.png | Bin 0 -> 723 bytes gtk2_ardour/icons/crossfade_in_slow-fade.png | Bin 0 -> 730 bytes gtk2_ardour/icons/crossfade_in_transition.png | Bin 0 -> 692 bytes gtk2_ardour/icons/crossfade_out_constant.png | Bin 0 -> 720 bytes gtk2_ardour/icons/crossfade_out_dipped.png | Bin 0 -> 831 bytes gtk2_ardour/icons/crossfade_out_fast-cut.png | Bin 0 -> 737 bytes gtk2_ardour/icons/crossfade_out_slow-cut.png | Bin 0 -> 770 bytes gtk2_ardour/icons/crossfade_out_slow-fade.png | Bin 0 -> 798 bytes .../icons/crossfade_out_transition.png | Bin 0 -> 737 bytes libs/ardour/ardour/location.h | 8 ++--- libs/ardour/location.cc | 20 ++++++++--- 16 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 gtk2_ardour/icons/crossfade_in_constant.png create mode 100644 gtk2_ardour/icons/crossfade_in_dipped.png create mode 100644 gtk2_ardour/icons/crossfade_in_fast-cut.png create mode 100644 gtk2_ardour/icons/crossfade_in_slow-cut.png create mode 100644 gtk2_ardour/icons/crossfade_in_slow-fade.png create mode 100644 gtk2_ardour/icons/crossfade_in_transition.png create mode 100644 gtk2_ardour/icons/crossfade_out_constant.png create mode 100644 gtk2_ardour/icons/crossfade_out_dipped.png create mode 100644 gtk2_ardour/icons/crossfade_out_fast-cut.png create mode 100644 gtk2_ardour/icons/crossfade_out_slow-cut.png create mode 100644 gtk2_ardour/icons/crossfade_out_slow-fade.png create mode 100644 gtk2_ardour/icons/crossfade_out_transition.png diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc index 0940f91b4f..a69383c7ee 100644 --- a/gtk2_ardour/crossfade_edit.cc +++ b/gtk2_ardour/crossfade_edit.cc @@ -193,7 +193,7 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr xf, d for (list::iterator i = fade_in_presets->begin(); i != fade_in_presets->end(); ++i) { - pxmap = manage (new Image (get_xpm((*i)->xpm))); + pxmap = manage (new Image (::get_icon ((*i)->image_name))); pbutton = manage (new Button); pbutton->add (*pxmap); pbutton->set_name ("CrossfadeEditButton"); @@ -214,7 +214,7 @@ CrossfadeEditor::CrossfadeEditor (Session& s, boost::shared_ptr xf, d for (list::iterator i = fade_out_presets->begin(); i != fade_out_presets->end(); ++i) { - pxmap = manage (new Image (get_xpm((*i)->xpm))); + pxmap = manage (new Image (::get_icon ((*i)->image_name))); pbutton = manage (new Button); pbutton->add (*pxmap); pbutton->set_name ("CrossfadeEditButton"); @@ -831,7 +831,8 @@ CrossfadeEditor::build_presets () fade_out_presets = new Presets; /* FADE OUT */ - p = new Preset ("hiin.xpm"); + // p = new Preset ("hiin.xpm"); + p = new Preset ("crossfade_in_fast-cut"); p->push_back (PresetPoint (0, 0)); p->push_back (PresetPoint (0.0207373, 0.197222)); p->push_back (PresetPoint (0.0645161, 0.525)); @@ -842,7 +843,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 1)); fade_in_presets->push_back (p); - p = new Preset ("loin.xpm"); + // p = new Preset ("loin.xpm"); + p = new Preset ("crossfade_in_transition"); p->push_back (PresetPoint (0, 0)); p->push_back (PresetPoint (0.389401, 0.0333333)); p->push_back (PresetPoint (0.629032, 0.0861111)); @@ -852,7 +854,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 1)); fade_in_presets->push_back (p); - p = new Preset ("regin.xpm"); + // p = new Preset ("regin.xpm"); + p = new Preset ("crossfade_in_constant"); p->push_back (PresetPoint (0, 0)); p->push_back (PresetPoint (0.0737327, 0.308333)); p->push_back (PresetPoint (0.246544, 0.658333)); @@ -862,7 +865,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 1)); fade_in_presets->push_back (p); - p = new Preset ("regin2.xpm"); + // p = new Preset ("regin2.xpm"); + p = new Preset ("crossfade_in_slow-cut"); p->push_back (PresetPoint (0, 0)); p->push_back (PresetPoint (0.304147, 0.0694444)); p->push_back (PresetPoint (0.529954, 0.152778)); @@ -872,14 +876,16 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 1)); fade_in_presets->push_back (p); - p = new Preset ("linin.xpm"); + // p = new Preset ("linin.xpm"); + p = new Preset ("crossfade_in_dipped"); p->push_back (PresetPoint (0, 0)); p->push_back (PresetPoint (1, 1)); fade_in_presets->push_back (p); /* FADE OUT */ - p = new Preset ("hiout.xpm"); + // p = new Preset ("hiout.xpm"); + p = new Preset ("crossfade_out_fast-cut"); p->push_back (PresetPoint (0, 1)); p->push_back (PresetPoint (0.305556, 1)); p->push_back (PresetPoint (0.548611, 0.991736)); @@ -889,7 +895,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 0)); fade_out_presets->push_back (p); - p = new Preset ("regout.xpm"); + // p = new Preset ("regout.xpm"); + p = new Preset ("crossfade_out_constant"); p->push_back (PresetPoint (0, 1)); p->push_back (PresetPoint (0.228111, 0.988889)); p->push_back (PresetPoint (0.347926, 0.972222)); @@ -899,7 +906,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 0)); fade_out_presets->push_back (p); - p = new Preset ("loout.xpm"); + // p = new Preset ("loout.xpm"); + p = new Preset ("crossfade_out_transition"); p->push_back (PresetPoint (0, 1)); p->push_back (PresetPoint (0.023041, 0.697222)); p->push_back (PresetPoint (0.0553, 0.483333)); @@ -909,7 +917,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 0)); fade_out_presets->push_back (p); - p = new Preset ("regout2.xpm"); + // p = new Preset ("regout2.xpm"); + p = new Preset ("crossfade_out_slow-fade"); p->push_back (PresetPoint (0, 1)); p->push_back (PresetPoint (0.080645, 0.730556)); p->push_back (PresetPoint (0.277778, 0.289256)); @@ -918,7 +927,8 @@ CrossfadeEditor::build_presets () p->push_back (PresetPoint (1, 0)); fade_out_presets->push_back (p); - p = new Preset ("linout.xpm"); + // p = new Preset ("linout.xpm"); + p = new Preset ("crossfade_out_dipped"); p->push_back (PresetPoint (0, 1)); p->push_back (PresetPoint (1, 0)); fade_out_presets->push_back (p); diff --git a/gtk2_ardour/crossfade_edit.h b/gtk2_ardour/crossfade_edit.h index 3c9a6a13c1..4f2a617d92 100644 --- a/gtk2_ardour/crossfade_edit.h +++ b/gtk2_ardour/crossfade_edit.h @@ -43,10 +43,9 @@ class CrossfadeEditor : public ArdourDialog }; struct Preset : public list { - string xpm; + const char* image_name; - Preset (string x) - : xpm (x) {} + Preset (const char* x) : image_name (x) {} }; typedef list Presets; diff --git a/gtk2_ardour/icons/crossfade_in_constant.png b/gtk2_ardour/icons/crossfade_in_constant.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7d48032e570fb1b3bd7c616fb103ac08c03a93 GIT binary patch literal 693 zcmV;m0!safP) z$;-#otV|aX)as^I1y}BCn+%#t3c3=M8mpm2$X2^4Gz+1)@$aaJAFCP+rE2X$N{S^$ zVvW_9=fcU5=3{1F^ulG{%zeD`&bj9fVem)*h_<~80CfQ0t*issQwKaeN@FLlYpaj* zLS@YQ)&Q_(WzqlUgz!O2!QFkzcQ!4uc*O|&z&^|0H{erRRDtkoKqL`Da9W& z_|tVzcU=Gwg8mXyq@_7AHqFdSX7t5Yuftm`?2;^lN#9Z-tCz~8ef`mIkFZjj!C97D zG%3gpUfSt*^DYKn0V0TxPO7Q&%*c~XkZ|04fPq(urVkY!&FdSxG*sL7P5B-aZt3egq*d!OgXqac z6Kp{90sai53Dsgx@c;6c{Lk&w@ca=DQUW*7lYF* zd>}9^-GNrEwiJKaRvNs_EG)#{&v@w7`nV z$1jnkq&iGw{~bp5*I)lLFfdXr4vd+6{9;&(D>KCR-(h5b_YES-$cP%-WCBYjcaJF6 zqKXXB{dXAI-hW4yqd15x8Ex&u*edF?MGxPDxttLy#|UGykR2?30dcHF<>|tQ?=iB! z{)*yiD2r?hESTIqqFM7x(?$2+VPt>%4V#+(7&(q;!+reXSW7B1L=NA_WjJzBkz@hH z<;9g5A_wm=a=iY6&tQ^$0C9OyMTW>>oQ9*u0VDDGK%dFWJC?PiGDGCp14fQlU+}4A z#98X$0OpKl7NM-gRT;uZ?lW?{_)N$#|IsbN=L0h)ch6Y1uKpsC;}4lQ2^&sQDl%bo zaExLtugwxYaF>z&%~w*BGTu~V#%N&~##YywCvx;YsfIHm7}z7(gvs4Aj)s_|Bq$~BMSoq12=O@ zx+!y1e2(z(htzU8oW;Vxz`($%XYI##^6?*z7hnJVXJkf=EJjAW83|494+F#hzYGiv z|9-!F{v9UB&A`B5h{XVM*k2eJ7`{R2FANL}9{>V3n)t8(k~IJT002ovPDHLkV1lcj BB2WMT literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_in_fast-cut.png b/gtk2_ardour/icons/crossfade_in_fast-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..a55dab560ae0abcd3f55c4dcec9124d8b3b204e1 GIT binary patch literal 686 zcmV;f0#W^mP)6N4azd0000PbVXQn zLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbP7)eAyR7l6IR84CWQ4~G*&3nlh z(`wQ#w4IO?#E+(0wW1QCil7uVx(h;G2|@*-78ey)ZruBCl)BWdAZQgt>7qhfC^6|I zX%fe|E;{2!n2%)Qfy)fs$2s@h``#t=jv)X?oPP;`y7CO5*%c=BNM4|+<2UrhCnYL2WcyvOvEb9s1AaMOt}dInjo!ZMIsJu5uG}HRGIB4%Yvk3J zj@AJ~NRO(xtH^)y)^4x`!2VGw@3;x2-My!NuDm>qZ|lPzR{dJwb*AA&-T7930me$8 U7$95HqyPW_07*qoM6N<$f?bj)V*mgE literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_in_slow-cut.png b/gtk2_ardour/icons/crossfade_in_slow-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..fe76c3bc8920726a8ea173af305eb70b860b4916 GIT binary patch literal 723 zcmV;^0xbQBP)|}Sd zwIL;1Q51_cY0#z!NujMqFCrzaKd>}K#G7bDL_xgx2YB`9$%B7|UiBa%3MxWG1T7{I zt-sQAlQv~{JT#g$*=A?@U>SCJ`@Z?UdGGBbY|Rn?A^^B&&jnBiU;}8hR+|(9>j37o zOP6!T?83YgwR8{x1PEXiz*`b{1K^!m{PL<=n18_)0rL92`!{%UG!uPYg1%&fTmc9H z5+FeUKm>vyFs<4_F~|;Sg=;yU9L?-}Tm*AOm&1k}t$juW08BDCgJER(-1&vrvroRk zJs9MLlLa`)uiwfUzgL<5tFf7nXdfTcKAD`w_3Vl1Z6B7D(@h3|C^eRH`^}J9S?=lA z!A2Tjhci?qNktmfG9~cq#vF*5-wK*nR@O)fdS`3&aPP0__iV|J9)qY0W>yq zD$8qYq&1zOz{2k}2w=B1ada%;a(!w*z7F<1s9_CC0mrvoEC$Fd#qAbB|STP(x&Y? zYh1aR@B8>eMIPaoO@0javgzEchz}_0|3s2TP91|a|d002ovPDHLk FV1h0cIF|qb literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_in_slow-fade.png b/gtk2_ardour/icons/crossfade_in_slow-fade.png new file mode 100644 index 0000000000000000000000000000000000000000..a105967da18447ce2c18e66a24f61576db86489c GIT binary patch literal 730 zcmV<00ww*4P)QrfB@V5{a!y+v}iNNC{1j(U3vN zl=Adhh}t^rZ7){yES>v1$qD7CgMb3?$&a5*vlg4(_VObL|ASku&`5a1nYn<_d!n!H z^`{be#ZL5w6-SN^2-hb9hr?0Oe6d^&*}Js###!^?qnpxNoXGKXC17q;K@&OMHMHae$Ly7N7@{g1rT*5i8Nzg;R zqXA)H&|_I%*Xsq(V=0VaHijn&UUwTX$_{&2_x3*KdzPMuNDecbzay`C!4103-lb08TA0CzsdooCDa=Mp7Gz-*6zN)1&*_GXMYp M07*qoM6N<$f>mile*gdg literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_in_transition.png b/gtk2_ardour/icons/crossfade_in_transition.png new file mode 100644 index 0000000000000000000000000000000000000000..482e8a63bd090a27e34f8b45adb8f8dca4209abe GIT binary patch literal 692 zcmV;l0!#ggP)$X3WCZYZgiq8Q`s0g_F$oNIEvx~VHADXP*hN1KKMO+Q4stZK8YasBzq_mQR{TL zO|4yP*GA2n_+YIutVwPHhlHDZ|G#tYIrm&bxaSA}#WiLDFkIH85aOH_FF)j07K;F! z>$d@vI<^vf{pn@>>f8$+0!mC^hll^A3GIa*%a}<8-*WWoZnu$6n|GGZkQt8+qUhWWSz|x=B1%@ zRx53YwnX0?Xh`k75V>(@Vc_{Hu^mfPyqkmF?t^~x$BW8?$9L7W23I~e!d$6ch#N49 zR4T9Be{@U!#gmEUk72}Z=Yiv$56<#uCfRJ^oOC#IT`hm3#Bv!F&h!5-Z~%xtdA4NB z{9bHhn-Wh~&1lU470x$iEP)YJb-3U?|MQO-FN(v=f zf~ILruA3Vj(}c{#d~le1FAU%LzI)EO0?>dVzzYnj@B)IrC;@r8fB|U!XRnU^JaOOx za2z0{P-+^P3xM+2i1Fj$(o`iKTLWGK(hY$I zKwYBk)}#vTVXYR?2F;K$H=h8`yH%js)}qPxKZn7$1@z?Aq&R#e1_Zk$knQC6ZEa)b zieg|Pn*qjqpK5}R!z?)fioQlM6>T5i5d-PTuV=gXfzI3oh)kp zzq3`}Dwtn3MgQXSOgpREHJWp)R*UF9E39YkC4tkO6i7D;07P99dXvXUObP4P`6E5TPe4l zC~722g73bHt;o?!Wp$_lrt-|EzC$f~#Od08_Wn1b9-oGVzy9$60000 literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_out_dipped.png b/gtk2_ardour/icons/crossfade_out_dipped.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1e84c485c1a8e856510c53e2141d5576419ca5 GIT binary patch literal 831 zcmV-F1Hk-=P)iN-`U#)MF4i3x3K z>6Mhu%r`Tg&qW!ir6n!YFFBcSG08LUbIu$9AOHdY3IE}U0OV7z-(1LF?QG$T^DY3H zdIAIhXf#ir6MJvo5{7Qy0C2h92}JkB-gZ|?ZDS(?-Bvu>#Mjm|0Fk-@ntXj74mIEE zjAgy**wA&JjGyJJ{xpD%;{pneB?16AQwqGZ0or;#HEsZ~-o0f2mgCBg3toMYXbm4%IR>%vZRglck)=o;K4w;R$aw_ zw&DbP4pjqkS|#>y*vAubgRlCNwLr=xuv6?eDyKt^=ZF;=uho*I0JzfMK}4;kivEEp zI^<-I*x0a-C#z3VZoyHdmm9Wr(EQ~OC0w*(fN(W{mctYkAIFXkIinJL@}P%rMsywwBq~9qYSfg~70tpu7o_;) z^n}hdlh4gs0KS(^aK<-aH`!BeiYn?-49F>k*rU7MmVY^mP$*NHLLmdDD2hsTH7~4F;?>NA3BdaF5w^^w~ZMEEg{snD?IjHj7l)3-_002ov JPDHLkV1lOVY{UQn literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_out_fast-cut.png b/gtk2_ardour/icons/crossfade_out_fast-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..33eaafe7b3589524ef6e26551843af725afb9694 GIT binary patch literal 737 zcmV<70v`Q|P)fc-y#GeX+ zF?hC-ja;hNyZ7LF_0H{f@7dD|@VXg+0l@Rr)I5xeOx4BStkU*w znaqoVIJ0xt=*mt2PB6ir-@7T|UrHpFzDsO&ZVDI(Lr@n{{1}L~w_jm+c!ZXgv9JW8 z4+pTy$YVlGY{_p7ieff51n&uhfTCr<+%%?UIbNz2MQlI`vR(*ITDI%2CE)Y8dB z7y^w#WR+`R8IjzfY?utBp^`$wDQzJqhWY~tRCimZzp80%tFD6;MuS}oZI{ZJY%UAz z57Ho#&~|AH=U~raAQjYTk>C_J@iM7&(+p$}&E^!#c*(d!XIJi@1gaW215t>5D`Upb zUI1c2UL?^hqbSbUxl_QAAUBPaN^4;i^7%m=XLRQ!_teRa&Kh6YF!qg`)4-+1bN1v# zjYz%vggtuZynXlnv>eS3`7fPg0d}%)qJZju`-D1Kn#d+w-527RbQ*s_l%31 zSSotezMg)axpFlzd3iZq$t;Th@V5i4K+=z`fB9u0pxb}1XS>&|iOEIx(ZlLbBOJVZ TX3ib!00000NkvXXu0mjfhZRN$ literal 0 HcmV?d00001 diff --git a/gtk2_ardour/icons/crossfade_out_slow-cut.png b/gtk2_ardour/icons/crossfade_out_slow-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..fd6260228e4688ff47cb5c93e87248696d479886 GIT binary patch literal 770 zcmV+d1O5DoP)r@!wfG0000PbVXQn zLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbPY)M2xR7l5_md#64Q53*`_q{it zHkD19g;EffrDMey*~jE2Li{Qa3@IsUQ4v8AZTcVDw2ElaqD@G4NMSFEWp_HayXSg z){q8TL~#OWRS-o05zM8Wv;N`Tu>1PeN8ml+1Obp7w@n!z6$Ax>5|k(uN+E{Asi}%A z^$*=BG@oj69^W^Cx4HlWKzX8!f`{RH7_Oi^!Egnm;9)v0u^F3vpT@A7TH4He54wQn zKmbr1Yqfc?Wuq%3M}A`U4_+e@$rPPYCBPPn_*x?2#Wf;JdBb}6qzgD66rd$LCgure zE_DKpK>_lgXi6kHXX7QJA(d)PmD^V?MQXbg0Vsj!Oct~I%4wh`XapNt*0b15mhj2; z^S~ipfRwACVu}1&!QG$Sjb-TqN-`qleli^wYk6H6-MtyW4AKYaMiQN~G21V+0ta+c zRIC*M%Y>RzY2cs^Koxnfw9cVA5huC#Xpk}$-G)=15dFQP%N9-}3aJC?fLh;Lx>1DeHSz;JY46*p%j~aJV0z2Q)V)c!zng6K ze4RBHpTBtOPJT~#Up`kE7du7@cW&k^0B3$`Eu5@(fIN@`$!ZUF-?jLU1w!*HhTT#( zn7eiRDyI1ic%wEwTVlS(eH&yL6&J;-|HSeB0d&>LYf%kn&j0`b07*qoM6N<$f2V0+qtMijcbKE)WX3>ZYqM`UAS?N)WsVya__H ztOZli)CtzM+~%Hcrfj+Ce$;`N7vA@IpU*kZ`JQuL0jPi(C;&`A6j+Ym^EM4otXel9*E@wPyyB9?sA#EYj!;lb%=_}203`MU#Y6Dj!jOO zfX_fUSAYUQEGE@Z6w}fsrPDsj-_8g_Q%i^G)tiS1aUC$`2S_%l1tZwseL^cfQf++x zatP>2voh8I4goyaRtH{*Mo|7d$6uwfP&QkdMKu;BX_O<_KW}`OGxpD zMbz%z9*T-O5BgjIkW#W=9sF&^wE!mnZ-e$=Yyh~BsZ3=yQCO#asLd^{N?Us$Q1?$% zl%%Lo1lyEX==UFu2&d~BP?2_`l{9wO2tj!~X?CD269MQyw@@P6N_cRfSuXjE()%q4 zEGCZGL_kG+=Ga=A+{O#vp-P{Jj$7KX&~xm4rIOZY*}daEB@K@GfuOxmZ+|H zq1QQ#?#?};r)R=Ryy8^gKM!n{3BAe+_1g85z>rfw)lJUMA}>CpB*%}4ME?nMyRQw9 zQd+0E_716S5?RX%&y8CbfRx)db!5@yPpG|#Vdd29#ah!{ZIYe!w{Fn(?2Yiw-<+d8 ze%7vSl}29v_nasa&J;a?g~zuEM=o1V!GA<{RDY{AKmUNgs~w(LrphyH$Z z4O`15gs@`(P-+R1AK0O59bqXp^n0b_$L current_changed; sigc::signal changed; diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc index 75afb5091b..3d04c66824 100644 --- a/libs/ardour/location.cc +++ b/libs/ardour/location.cc @@ -661,7 +661,7 @@ struct LocationStartLaterComparison }; Location * -Locations::first_location_before (nframes_t frame) +Locations::first_location_before (nframes_t frame, bool include_special_ranges) { LocationList locs; @@ -676,6 +676,9 @@ Locations::first_location_before (nframes_t frame) /* locs is now sorted latest..earliest */ for (LocationList::iterator i = locs.begin(); i != locs.end(); ++i) { + if (!include_special_ranges && ((*i)->is_auto_loop() || (*i)->is_auto_punch())) { + continue; + } if (!(*i)->is_hidden() && (*i)->start() < frame) { return (*i); } @@ -685,7 +688,7 @@ Locations::first_location_before (nframes_t frame) } Location * -Locations::first_location_after (nframes_t frame) +Locations::first_location_after (nframes_t frame, bool include_special_ranges) { LocationList locs; @@ -700,6 +703,9 @@ Locations::first_location_after (nframes_t frame) /* locs is now sorted earliest..latest */ for (LocationList::iterator i = locs.begin(); i != locs.end(); ++i) { + if (!include_special_ranges && ((*i)->is_auto_loop() || (*i)->is_auto_punch())) { + continue; + } if (!(*i)->is_hidden() && (*i)->start() > frame) { return (*i); } @@ -709,7 +715,7 @@ Locations::first_location_after (nframes_t frame) } nframes_t -Locations::first_mark_before (nframes_t frame) +Locations::first_mark_before (nframes_t frame, bool include_special_ranges) { LocationList locs; @@ -724,6 +730,9 @@ Locations::first_mark_before (nframes_t frame) /* locs is now sorted latest..earliest */ for (LocationList::iterator i = locs.begin(); i != locs.end(); ++i) { + if (!include_special_ranges && ((*i)->is_auto_loop() || (*i)->is_auto_punch())) { + continue; + } if (!(*i)->is_hidden()) { if ((*i)->is_mark()) { /* MARK: start == end */ @@ -746,7 +755,7 @@ Locations::first_mark_before (nframes_t frame) } nframes_t -Locations::first_mark_after (nframes_t frame) +Locations::first_mark_after (nframes_t frame, bool include_special_ranges) { LocationList locs; @@ -761,6 +770,9 @@ Locations::first_mark_after (nframes_t frame) /* locs is now sorted earliest..latest */ for (LocationList::iterator i = locs.begin(); i != locs.end(); ++i) { + if (!include_special_ranges && ((*i)->is_auto_loop() || (*i)->is_auto_punch())) { + continue; + } if (!(*i)->is_hidden()) { if ((*i)->is_mark()) { /* MARK, start == end so just compare start */