RPR GetSet LoopTimeRange2
From CockosWiki
(Difference between revisions)
(→Examples) |
(→C++) |
||
Line 20: | Line 20: | ||
==Examples== | ==Examples== | ||
===C++=== | ===C++=== | ||
- | <source lang=cpp> | + | <source lang=cpp highlight="16"> |
+ | void DoInsRndFileEx(bool RndLen,bool RndOffset,bool UseTimeSel) | ||
+ | { | ||
+ | if (g_filenames->GetSize()>0) | ||
+ | { | ||
+ | int filenameindex=rand() % g_filenames->GetSize(); | ||
+ | |||
+ | t_vect_of_Reaper_tracks TheTracks; | ||
+ | XenGetProjectTracks(TheTracks,true); | ||
+ | if (TheTracks.size()>0) | ||
+ | { | ||
+ | PCM_source *NewPCM=PCM_Source_CreateFromFile(g_filenames->Get(filenameindex)); | ||
+ | MediaItem *NewItem=AddMediaItemToTrack(TheTracks[0]); | ||
+ | MediaItem_Take *NewTake=AddTakeToMediaItem(NewItem); | ||
+ | double TimeSelStart=0.0; | ||
+ | double TimeSelEnd=NewPCM->GetLength(); | ||
+ | GetSet_LoopTimeRange(false,false,&TimeSelStart,&TimeSelEnd,false); | ||
+ | double ItemPos=TimeSelStart; | ||
+ | double ItemLen=NewPCM->GetLength(); | ||
+ | double MediaOffset=0.0; | ||
+ | if (RndOffset) | ||
+ | { | ||
+ | MediaOffset=(NewPCM->GetLength()/RAND_MAX)*rand(); | ||
+ | ItemLen-=MediaOffset; | ||
+ | } | ||
+ | if (RndLen) ItemLen=((NewPCM->GetLength()-MediaOffset)/RAND_MAX)*rand(); | ||
+ | if (UseTimeSel) ItemLen=TimeSelEnd-TimeSelStart; | ||
+ | if (!UseTimeSel) ItemPos=GetCursorPosition(); | ||
+ | GetSetMediaItemTakeInfo(NewTake,"P_SOURCE",NewPCM); | ||
+ | GetSetMediaItemTakeInfo(NewTake,"D_STARTOFFS",&MediaOffset); | ||
+ | |||
+ | GetSetMediaItemInfo(NewItem,"D_POSITION",&ItemPos); | ||
+ | GetSetMediaItemInfo(NewItem,"D_LENGTH",&ItemLen); | ||
+ | Main_OnCommand(40047,0); // build any missing peaks | ||
+ | SetEditCurPos(ItemPos+ItemLen,false,false); | ||
+ | Undo_OnStateChangeEx("Insert random file (Extended)",4,-1); | ||
+ | |||
+ | UpdateTimeline(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</source> | </source> | ||
+ | |||
===Perl=== | ===Perl=== | ||
<source lang=cpp> | <source lang=cpp> |
Latest revision as of 19:49, 29 January 2010
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetSet LoopTimeRange2
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetSet LoopTimeRange2
Contents |
GetSet_LoopTimeRange()
void GetSet_LoopTimeRange(bool isSet, bool isLoop, double* start, double* end, bool allowautoseek)
void GetSet_LoopTimeRange(void* proj, bool isSet, bool isLoop, double* start, double* end, bool allowautoseek)
Parameters
bool isSet, bool isLoop, double* start, double* end, bool allowautoseek
Returns
An array, containing void* proj, bool isSet, bool isLoop, double* start, double* end, bool allowautoseek
Examples
C++
void DoInsRndFileEx(bool RndLen,bool RndOffset,bool UseTimeSel) { if (g_filenames->GetSize()>0) { int filenameindex=rand() % g_filenames->GetSize(); t_vect_of_Reaper_tracks TheTracks; XenGetProjectTracks(TheTracks,true); if (TheTracks.size()>0) { PCM_source *NewPCM=PCM_Source_CreateFromFile(g_filenames->Get(filenameindex)); MediaItem *NewItem=AddMediaItemToTrack(TheTracks[0]); MediaItem_Take *NewTake=AddTakeToMediaItem(NewItem); double TimeSelStart=0.0; double TimeSelEnd=NewPCM->GetLength(); GetSet_LoopTimeRange(false,false,&TimeSelStart,&TimeSelEnd,false); double ItemPos=TimeSelStart; double ItemLen=NewPCM->GetLength(); double MediaOffset=0.0; if (RndOffset) { MediaOffset=(NewPCM->GetLength()/RAND_MAX)*rand(); ItemLen-=MediaOffset; } if (RndLen) ItemLen=((NewPCM->GetLength()-MediaOffset)/RAND_MAX)*rand(); if (UseTimeSel) ItemLen=TimeSelEnd-TimeSelStart; if (!UseTimeSel) ItemPos=GetCursorPosition(); GetSetMediaItemTakeInfo(NewTake,"P_SOURCE",NewPCM); GetSetMediaItemTakeInfo(NewTake,"D_STARTOFFS",&MediaOffset); GetSetMediaItemInfo(NewItem,"D_POSITION",&ItemPos); GetSetMediaItemInfo(NewItem,"D_LENGTH",&ItemLen); Main_OnCommand(40047,0); // build any missing peaks SetEditCurPos(ItemPos+ItemLen,false,false); Undo_OnStateChangeEx("Insert random file (Extended)",4,-1); UpdateTimeline(); } } }
Perl
Python
See Also
(Section automatically generated, edits may be overwritten.)
Stuff
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR GetSet LoopTimeRange2
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR GetSet LoopTimeRange2