RPR GetSetMediaItemTakeInfo String

From CockosWiki

(Difference between revisions)
Jump to: navigation, search
(Python)
(Examples)
Line 20: Line 20:
==Examples==
==Examples==
===C++===
===C++===
-
<pre>
+
<source lang=cpp>
-
</pre>
+
</source>
 +
 
 +
 
===Perl===
===Perl===
-
<pre>
+
<source lang=perl>
#
#
# GetSetMediaItemTakeInfoString.pl
# GetSetMediaItemTakeInfoString.pl
Line 48: Line 50:
RPR_ShowConsoleMsg("setnewvalue=:$setnewvalue:\n");
RPR_ShowConsoleMsg("setnewvalue=:$setnewvalue:\n");
RPR_ShowConsoleMsg("p_string=.$p_string.\n");
RPR_ShowConsoleMsg("p_string=.$p_string.\n");
-
</pre>
+
</source>
 +
 
===Python===
===Python===
-
<pre>
 
# clean_take_names.py
# clean_take_names.py
# use at your own risk etc etc
# use at your own risk etc etc
Line 108: Line 110:
if Verbose:
if Verbose:
     RPR_ShowConsoleMsg(str(Found) + " item(s) cleaned\n")</pre>
     RPR_ShowConsoleMsg(str(Found) + " item(s) cleaned\n")</pre>
 +
</source>
==See Also==
==See Also==

Revision as of 09:40, 29 January 2010

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

  1. clean_take_names.py
  2. use at your own risk etc etc
  1. 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)
  1. Get number of media items in current project

Item_Count = RPR_CountMediaItems(0)

  1. 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>

</source>

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