RPR GetMediaItemTake

From CockosWiki

(Difference between revisions)
Jump to: navigation, search
(MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk))
(Undo revision 13261 by Ucokane (Talk))
 
(9 intermediate revisions not shown)
Line 1: Line 1:
{{API_Doc_Header}}
{{API_Doc_Header}}
=GetMediaItemTake()=
=GetMediaItemTake()=
-
MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk)
+
'''MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk)'''
-
Gets a specified? take from a specified Media Item
+
Gets a specified take from a specified Media Item
==Parameters==
==Parameters==
  MediaItem* item - the specified Media Item
  MediaItem* item - the specified Media Item
-
  int tk - the specified take? 0 = first take?
+
  int tk - the specified take, 0 = first take
==Returns==
==Returns==
  MediaItem_Take*
  MediaItem_Take*
==Examples==
==Examples==
 +
===C++===
 +
<source lang=cpp>
 +
</source>
===Perl===
===Perl===
-
<pre>
+
<source lang=perl>
#
#
# GetMediaItemTake.pl
# GetMediaItemTake.pl
Line 28: 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);
-
</pre>
+
</source>
===Python===
===Python===
-
<pre>
+
<source lang=python>
-
</pre>
+
# 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")
 +
</source>
 +
 
==See Also==
==See Also==
 +
{{SeeAlso_item}}
 +
 +
{{SeeAlso_take}}
 +
 +
''(Section automatically generated, edits may be overwritten.)''
 +
==Stuff==
==Stuff==
{{API_Doc_Footer}}
{{API_Doc_Footer}}

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

Personal tools