老哥,你这样回复有点yygq啊,我是个论坛新手,你是前辈,有冒犯请见谅。
还是回到你的问题,其实你的需求有点没说清楚。因为你的1、2、3条和“轨道全部为还原为 默认的状态”并能用“说白了”承接。一条轨道的控制信息非常多,如果真是还原默认状态,可能也就我的朴素的实现方法真正满足需求,当然,你应该也不会是要删掉所有items的那种默认状态,那样真的就毫无意义了。代码如下:
- # 所有轨道全部为还原为默认的状态
- def reset():
- if RPR_CountTracks(0) == 0:
- return
- RPR_Undo_BeginBlock()
- track_num = RPR_CountTracks(0)
- for i in range(track_num):
- temp_track = RPR_GetTrack(0, i)
- RPR_SetOnlyTrackSelected(temp_track)
- cur_track_item_num = RPR_CountTrackMediaItems(temp_track)
- RPR_Main_OnCommand(40421, 0)
- items_l = []
- for j in range(cur_track_item_num):
- item = RPR_GetSelectedMediaItem(0, j)
- items_l.append(item)
- RPR_InsertTrackAtIndex(i, True)
- add_track = RPR_GetTrack(0, i)
- for i in items_l:
- RPR_MoveMediaItemToTrack(i, add_track)
- RPR_DeleteTrack(temp_track)
- RPR_Undo_EndBlock("reset", -1)
- reset()
复制代码
如果只是为了实现123条,改一下上述代码,一个for循环就了事,如果你说的默认状态不包括轨道名,那可以在上述代码上加两行,如果你是要将选中的轨道恢复到默认状态,在其中再添加一条代码。
刚刚测试了一下,reset效果还不错,“一瞬间”恢复到默认,而且,我好像发现了一个Reaper的bug。。。。
顺便说一下,我的代码水平也就大一水平,就因为这点三脚猫所以当时冲动留言了。话说就算我完全不会代码也没什么。我现在专注音乐的学习。