RPR GetSetMediaItemTakeInfo String

From CockosWiki

Jump to: navigation, search

Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetSetMediaItemTakeInfo String
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetSetMediaItemTakeInfo String

Contents

GetSetMediaItemTakeInfo_String()

bool GetSetMediaItemTakeInfo_String(MediaItem_Take* tk, const char* parmname, char* string, bool setnewvalue)

Get or set take string attributes.
P_NAME : char * to take name

Parameters

MediaItem_Take* tk,
const char* parmname,
char* string,
bool setnewvalue

Returns

An array, containing
 bool 
 MediaItem_Take* tk,
 const char* parmname,
 char* string,
 bool setnewvalue

Examples

C++

 


Perl

#
# GetSetMediaItemTakeInfoString.pl
#
 
use strict;
use warnings;
 
use constant CURR_PROJ => 0;
use constant FIRST_SEL => 0;
use constant FIRST_TAKE => 0;
use CONSTANT P_NAME => 'PNAME';
use constant TRUE => 1;
use constant FALSE => 0;
 
my ($bvar, $p_name, $p_string, $setnewvalue);
 
my $it = RPR_GetSelectedMediaItem(CURR_PROJ, FIRST_SEL);
my $tk = RPR_GetTake($it, FIRST_TAKE);
($bvar, $tk, $p_name, $p_string, $setnewvalue) = RPR_GetSetMediaItemTakeInfo_String($tk, "P_NAME", $p_string, FALSE);
 
RPR_ShowConsoleMsg("bvar=:$bvar:\n");
RPR_ShowConsoleMsg("p_name=:$p_name:\n");
RPR_ShowConsoleMsg("setnewvalue=:$setnewvalue:\n");
RPR_ShowConsoleMsg("p_string=.$p_string.\n");


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")</pre>

See Also

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 GetSetMediaItemTakeInfo String
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetSetMediaItemTakeInfo String

Personal tools