RPR GetMediaItemTake
From CockosWiki
Line 1: | Line 1: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
{{API_Doc_Header}} | {{API_Doc_Header}} | ||
=GetMediaItemTake()= | =GetMediaItemTake()= | ||
Line 19: | Line 11: | ||
==Examples== | ==Examples== | ||
===C++=== | ===C++=== | ||
- | + | <source lang=cpp> | |
- | + | </source> | |
===Perl=== | ===Perl=== | ||
- | + | <source lang=perl> | |
# | # | ||
# GetMediaItemTake.pl | # GetMediaItemTake.pl | ||
Line 30: | Line 22: | ||
use warnings; | use warnings; | ||
- | use constant CURR_PROJ = | + | use constant CURR_PROJ => 0; |
- | use constant FIRST_SEL_ITEM = | + | use constant FIRST_SEL_ITEM => 0; |
- | use constant FIRST_TAKE = | + | use constant FIRST_TAKE => 0; |
# Get the first selected media item in the current project | # Get the first selected media item in the current project | ||
Line 39: | Line 31: | ||
# and now the take in that item | # and now the take in that item | ||
my $take = RPR_GetMediaItemTake($it, FIRST_TAKE); | my $take = RPR_GetMediaItemTake($it, FIRST_TAKE); | ||
- | + | </source> | |
===Python=== | ===Python=== | ||
- | + | <source lang=python> | |
# clean_take_names.py | # clean_take_names.py | ||
# use at your own risk etc etc | # use at your own risk etc etc | ||
# Modify these to suit your needs | # Modify these to suit your needs | ||
- | suffix_list = [ | + | suffix_list = [".aif", ".aiff", ".bwf", ".flac", ".kar", ".mid", ".mp2", ".mp3", ".ogg", ".wav", ".w64"] |
- | prefix_list = [ | + | prefix_list = ["*"] |
clean_white_space = True | clean_white_space = True | ||
Verbose = True | Verbose = True | ||
def clean_name(name, check_list, suffix = True): | def clean_name(name, check_list, suffix = True): | ||
- | New_Name = | + | New_Name = "" |
lower_name = name.lower() # handle all cases | lower_name = name.lower() # handle all cases | ||
for item in check_list: | for item in check_list: | ||
Line 72: | Line 64: | ||
Found = 0 | Found = 0 | ||
if Verbose: | if Verbose: | ||
- | RPR_ShowConsoleMsg( | + | RPR_ShowConsoleMsg("Checking {0} item(s)\n".format(Item_Count)) |
- | while Item_Index | + | while Item_Index < Item_Count: ############################################### |
Item_ID = RPR_GetMediaItem(0, Item_Index) | Item_ID = RPR_GetMediaItem(0, Item_Index) | ||
- | Current_Take = RPR_GetMediaItemInfo_Value(Item_ID, | + | Current_Take = RPR_GetMediaItemInfo_Value(Item_ID, "I_CURTAKE") # Get active take index for current item |
Take_ID = RPR_GetMediaItemTake(Item_ID, int(Current_Take)); | Take_ID = RPR_GetMediaItemTake(Item_ID, int(Current_Take)); | ||
- | Take_Name = RPR_GetSetMediaItemTakeInfo_String(Take_ID, | + | Take_Name = RPR_GetSetMediaItemTakeInfo_String(Take_ID, "P_NAME", "", 0)[3] # Get active take name |
Old_Name = Take_Name | Old_Name = Take_Name | ||
(removed_suffix, Take_Name) = clean_name(Take_Name, suffix_list, suffix = True) | (removed_suffix, Take_Name) = clean_name(Take_Name, suffix_list, suffix = True) | ||
Line 91: | Line 83: | ||
if removed_suffix or removed_prefix or removed_white_space: # Rename active take if changed | if removed_suffix or removed_prefix or removed_white_space: # Rename active take if changed | ||
Found = Found + 1 | Found = Found + 1 | ||
- | RPR_GetSetMediaItemTakeInfo_String(Take_ID, | + | RPR_GetSetMediaItemTakeInfo_String(Take_ID, "P_NAME", Take_Name, 1) |
if Verbose: | if Verbose: | ||
- | Msg = | + | Msg = "Item {0} of {1}: Converted '{2}' to '{3}'\n".format(Item_Index + 1, Item_Count, Old_Name, Take_Name) |
RPR_ShowConsoleMsg(Msg) | RPR_ShowConsoleMsg(Msg) | ||
Item_Index = Item_Index + 1; | Item_Index = Item_Index + 1; | ||
if Verbose: | if Verbose: | ||
- | RPR_ShowConsoleMsg(str(Found) + | + | RPR_ShowConsoleMsg(str(Found) + " item(s) cleaned\n") |
- | + | </source> | |
==See Also== | ==See Also== |
Latest revision as of 00:01, 25 November 2010
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetMediaItemTake
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetMediaItemTake
Contents |
GetMediaItemTake()
MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk)
Gets a specified take from a specified Media Item
Parameters
MediaItem* item - the specified Media Item int tk - the specified take, 0 = first take
Returns
MediaItem_Take*
Examples
C++
Perl
# # GetMediaItemTake.pl # use strict; use warnings; use constant CURR_PROJ => 0; use constant FIRST_SEL_ITEM => 0; use constant FIRST_TAKE => 0; # Get the first selected media item in the current project my $it = RPR_GetSelectedMediaItem(CURR_PROJ,FIRST_SEL_ITEM); # and now the take in that item my $take = RPR_GetMediaItemTake($it, FIRST_TAKE);
Python
# clean_take_names.py # use at your own risk etc etc # Modify these to suit your needs suffix_list = [".aif", ".aiff", ".bwf", ".flac", ".kar", ".mid", ".mp2", ".mp3", ".ogg", ".wav", ".w64"] prefix_list = ["*"] clean_white_space = True Verbose = True def clean_name(name, check_list, suffix = True): New_Name = "" lower_name = name.lower() # handle all cases for item in check_list: if suffix: if lower_name.endswith(item): New_Name = name[:-len(item)] return (True, New_Name) else: if lower_name.startswith(item): New_Name = name[len(item):] return (True, New_Name) return (False, name) # Get number of media items in current project Item_Count = RPR_CountMediaItems(0) # Scan each item in project Item_Index = 0 Found = 0 if Verbose: RPR_ShowConsoleMsg("Checking {0} item(s)\n".format(Item_Count)) while Item_Index < Item_Count: ############################################### Item_ID = RPR_GetMediaItem(0, Item_Index) Current_Take = RPR_GetMediaItemInfo_Value(Item_ID, "I_CURTAKE") # Get active take index for current item Take_ID = RPR_GetMediaItemTake(Item_ID, int(Current_Take)); Take_Name = RPR_GetSetMediaItemTakeInfo_String(Take_ID, "P_NAME", "", 0)[3] # Get active take name Old_Name = Take_Name (removed_suffix, Take_Name) = clean_name(Take_Name, suffix_list, suffix = True) (removed_prefix, Take_Name) = clean_name(Take_Name, prefix_list, suffix = False) removed_white_space = False if clean_white_space: New_Name = Take_Name.strip() if len(New_Name) != len(Take_Name): Take_Name = New_Name removed_white_space = True if removed_suffix or removed_prefix or removed_white_space: # Rename active take if changed Found = Found + 1 RPR_GetSetMediaItemTakeInfo_String(Take_ID, "P_NAME", Take_Name, 1) if Verbose: Msg = "Item {0} of {1}: Converted '{2}' to '{3}'\n".format(Item_Index + 1, Item_Count, Old_Name, Take_Name) RPR_ShowConsoleMsg(Msg) Item_Index = Item_Index + 1; if Verbose: RPR_ShowConsoleMsg(str(Found) + " item(s) cleaned\n")
See Also
item: AddMediaItemToTrack, AddTakeToMediaItem, GetTrackMediaItem, GetTrackNumMediaItems, CountMediaItems, CountSelectedMediaItems, GetItemProjectContext, SetMediaItemInfo_Value, CountTrackMediaItems, SetMediaItemTakeInfo_Value, GetMediaItem, GetMediaItem_Track, GetMediaItemInfo_Value, GetMediaItemNumTakes, GetMediaItemTake, GetMediaItemTake_Item, GetMediaItemTake_Source, GetMediaItemTake_Track, GetMediaItemTakeInfo_Value, SplitMediaItem, MoveMediaItemToTrack, GetSelectedMediaItem, DeleteTrackMediaItem, GetSetItemState, GetSetMediaItemTakeInfo_String, Undo_OnStateChange_Item, UpdateItemInProject,
take: GetActiveTake, GetMediaItemNumTakes, GetMediaItemTake, GetMediaItemTakeInfo_Value, GetMediaItemTake_Item, GetMediaItemTake_Source, GetMediaItemTake_Track, GetSetMediaItemTakeInfo_String, GetTake, GetTakeEnvelopeByName, SetMediaItemTakeInfo_Value, AddTakeToMediaItem, CountTakes,
(Section automatically generated, edits may be overwritten.)
Stuff
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetMediaItemTake
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetMediaItemTake