@Aleksandr Oleynik, Ок
[DOUBLEPOST=1467921304][/DOUBLEPOST]@Aleksandr Oleynik, Очень круто, спасибо!!!
[DOUBLEPOST=1467921304][/DOUBLEPOST]@Aleksandr Oleynik, Очень круто, спасибо!!!
Александр , перепроверьте скрипт пожалуйста , по моему не работает писать без учёта регистра, или я что то не то настроил@lil-burn, Спасибо, дописал, чтоб регистр букв (не только первых) в имени трека не имел значение вообще! Ну и чилдрен патерны тоже можно писать без учёта регистра, т.е. как угодно.
Перезалил оба скрипта!
А если назвать трек не tom а 12 Tom ? будут стоять цифры или буквы перед словом , он же не находит трек ?@stepperian, ок, перепроверю, но желательно приводить, как это делает @Martin111 ошибку, которую пишет скрипт - мне это сильно помогает, я не в состоянии наступить сам на все возможные пользовательские грабли.
PS: Проверил, всё работает -
Может ты не перезакачал скрипт и используешь старый?
ну так - а зачем бэта тестеры?А если назвать трек не tom а 12 Tom ? будут стоять цифры или буквы перед словом , он же не находит трек ?
function compare_str_case_insens (str_1, str_2)
capture = ''
if str_1 and str_2 then
for w in str_1:gmatch('.') do capture = capture..'['..w:lower()..','..w:upper()..']' end
if str_2:match(capture) then return true end
end
end
Если не возможно сделать отвязку от регистра другими путями , тогда наверное лучше ее убратьПроблема имено в функции отвязки от регистра для символов - она не работает со слогами, она сравнивать может только ПОЛНЫЕ имена -
т.е. если str_1 и str_2 отличаются только регистром у букв в словах - то всё ОК, а если str_2 только часть строки str_1 - то всёPHP:function compare_str_case_insens (str_1, str_2) capture = '' if str_1 and str_2 then for w in str_1:gmatch('.') do capture = capture..'['..w:lower()..','..w:upper()..']' end if str_2:match(capture) then return true end end end
Всё возможно, просто нужно время чтоб найти как.Если не возможно сделать отвязку от регистра другими путями , тогда наверное лучше ее убрать
Я не понял о чём вы?@Aleksandr Oleynik, возможно сделать чтобы всегда было в положении on, и выключалось только вручную ? Попробовал сохранить темплейт, но посл перезапуска кнопка сама переключается в положение off, отжатый режим.
function main()
tracks = reaper.CountTracks(0)
for i = 0, tracks-1 do
tr = reaper.GetTrack(0,i)
_, tr_name = reaper.GetSetMediaTrackInfo_String(tr, 'P_NAME', '', 0)
if tr_name ~= '' then
if #tr_name > 1 then
tr_name = tr_name:sub(1,1):upper()..tr_name:sub(2,-1)
else tr_name = tr_name:sub(1,1):upper() end
reaper.GetSetMediaTrackInfo_String(tr, 'P_NAME', tr_name, 1)
end
end
end
function first_letter_upper_all_tracks()
st_ch = reaper.GetProjectStateChangeCount(0) - init_st_ch
if st_ch - update_st_ch > 0 then update_st_ch = st_ch; main() end
reaper.defer(first_letter_upper_all_tracks)
end
-- Set ToolBar Button ON
function SetButtonON()
_, _, sec, cmd = reaper.get_action_context()
state = reaper.GetToggleCommandStateEx( sec, cmd )
reaper.SetToggleCommandState( sec, cmd, 1 ) -- Set ON
reaper.RefreshToolbar2( sec, cmd )
end
--
-- Set ToolBar Button OFF
function SetButtonOFF()
_, _, sec, cmd = reaper.get_action_context()
state = reaper.GetToggleCommandStateEx( sec, cmd )
reaper.SetToggleCommandState( sec, cmd, 0 ) -- Set OFF
reaper.RefreshToolbar2( sec, cmd )
end
init_st_ch = reaper.GetProjectStateChangeCount(0)
update_st_ch = reaper.GetProjectStateChangeCount(0) - init_st_ch
main()
first_letter_upper_all_tracks()
SetButtonON()
reaper.atexit( SetButtonOFF )
А если назвать трек не tom а 12 Tom ? будут стоять цифры или буквы перед словом , он же не находит трек ?
"Это" - это что?это работает только на одно действие
если разгрузить папки то треки не собираются все, а если достать треки из папки и передвинуть в другое место они собираютсяИсправленно и кое что переделанно -
http://rmmedia.ru/threads/117419/page-3#post-2013902
Потестите пожалуйста!
потому как разгружаете вы их не верно - клацая по папочке вы меняете статус только парента, а чилдрен остаётся с прежним статусом - это БАГ Рипера!если разгрузить папки то треки не собираются все