RPR TimeMap QNToTime
From CockosWiki
(→Examples) |
(→C++) |
||
Line 10: | Line 10: | ||
==Examples== | ==Examples== | ||
===C++=== | ===C++=== | ||
- | <source lang=cpp> | + | <source lang=cpp highlight=34> |
- | < | + | void DoNudgeItemsBeatsBased(bool UseConf,bool Positive, double theNudgeAmount) |
+ | { | ||
+ | MediaTrack* MunRaita; | ||
+ | MediaItem* CurItem; | ||
+ | |||
+ | int numItems; | ||
+ | double NudgeAmount=g_command_params.ItemPosNudgeBeats; | ||
+ | bool ItemSelected=false; | ||
+ | |||
+ | int i; | ||
+ | int j; | ||
+ | for (i=0;i<GetNumTracks();i++) | ||
+ | { | ||
+ | MunRaita = CSurf_TrackFromID(i+1,FALSE); | ||
+ | numItems=GetTrackNumMediaItems(MunRaita); | ||
+ | MediaItem** MediaItemsOnTrack = new MediaItem*[numItems]; | ||
+ | for (j=0;j<numItems;j++) | ||
+ | { | ||
+ | CurItem = GetTrackMediaItem(MunRaita,j); | ||
+ | MediaItemsOnTrack[j]=CurItem; | ||
+ | } | ||
+ | for (j=0;j<numItems;j++) | ||
+ | { | ||
+ | ItemSelected=*(bool*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"B_UISEL",NULL); | ||
+ | if (ItemSelected==TRUE) | ||
+ | { | ||
+ | double NewPos; | ||
+ | double OldPos=*(double*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",NULL); | ||
+ | double OldPosBeats=TimeMap_timeToQN(OldPos); | ||
+ | double NewPosBeats; | ||
+ | if (Positive) | ||
+ | NewPosBeats=OldPosBeats+NudgeAmount; else NewPosBeats=OldPosBeats-NudgeAmount; | ||
+ | NewPos=TimeMap_QNToTime(NewPosBeats); | ||
+ | GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",&NewPos); | ||
+ | } | ||
+ | } | ||
+ | delete[] MediaItemsOnTrack; | ||
+ | } | ||
+ | Undo_OnStateChangeEx("Nudge Item Position(s), Beat Based",4,-1); | ||
+ | UpdateTimeline(); | ||
+ | } | ||
+ | </source> | ||
===Perl=== | ===Perl=== |
Latest revision as of 21:36, 29 January 2010
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR TimeMap QNToTime
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR TimeMap QNToTime
Contents |
TimeMap_QNToTime()
double TimeMap_QNToTime(double qn)
converts project QN position to time.
Parameters
double qn
Returns
double
Examples
C++
void DoNudgeItemsBeatsBased(bool UseConf,bool Positive, double theNudgeAmount) { MediaTrack* MunRaita; MediaItem* CurItem; int numItems; double NudgeAmount=g_command_params.ItemPosNudgeBeats; bool ItemSelected=false; int i; int j; for (i=0;i<GetNumTracks();i++) { MunRaita = CSurf_TrackFromID(i+1,FALSE); numItems=GetTrackNumMediaItems(MunRaita); MediaItem** MediaItemsOnTrack = new MediaItem*[numItems]; for (j=0;j<numItems;j++) { CurItem = GetTrackMediaItem(MunRaita,j); MediaItemsOnTrack[j]=CurItem; } for (j=0;j<numItems;j++) { ItemSelected=*(bool*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"B_UISEL",NULL); if (ItemSelected==TRUE) { double NewPos; double OldPos=*(double*)GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",NULL); double OldPosBeats=TimeMap_timeToQN(OldPos); double NewPosBeats; if (Positive) NewPosBeats=OldPosBeats+NudgeAmount; else NewPosBeats=OldPosBeats-NudgeAmount; NewPos=TimeMap_QNToTime(NewPosBeats); GetSetMediaItemInfo(MediaItemsOnTrack[j],"D_POSITION",&NewPos); } } delete[] MediaItemsOnTrack; } Undo_OnStateChangeEx("Nudge Item Position(s), Beat Based",4,-1); UpdateTimeline(); }
Perl
Python
See Also
time: GetProjectTimeSignature, GetProjectTimeSignature2, GetSet_LoopTimeRange, GetSet_LoopTimeRange2, IsInRealTimeAudio, Master_GetPlayRateAtTime, TimeMap2_GetDividedBpmAtTime, TimeMap2_GetNextChangeTime, TimeMap2_QNToTime, TimeMap2_beatsToTime, TimeMap2_timeToBeats, TimeMap2_timeToQN, TimeMap_GetDividedBpmAtTime, TimeMap_QNToTime, TimeMap_timeToQN, UpdateTimeline, format_timestr, format_timestr_len, format_timestr_pos, parse_timestr, parse_timestr_len, parse_timestr_pos,
(Section automatically generated, edits above this line may be overwritten.)
Stuff
Main Page > REAPER Documentation > ReaScript > ReaScript API, Functions > RPR TimeMap QNToTime
Main Page > REAPER Documentation > REAPER API > REAPER API Functions > RPR TimeMap QNToTime