Merge branch '#174' into tic_0.46.0
This commit is contained in:
		
							
								
								
									
										36
									
								
								src/music.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								src/music.c
									
									
									
									
									
								
							@@ -1495,6 +1495,37 @@ static void drawPianoLayout(Music* music)
 | 
			
		||||
	music->tic->api.fixed_text(music->tic, Wip, (TIC80_WIDTH - (sizeof Wip - 1) * TIC_FONT_WIDTH) / 2, TIC80_HEIGHT / 2, systemColor(tic_color_white));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void scrollNotes(Music* music, s32 delta)
 | 
			
		||||
{
 | 
			
		||||
	tic_track_pattern* pattern = getChannelPattern(music);
 | 
			
		||||
 | 
			
		||||
	if(pattern)
 | 
			
		||||
	{
 | 
			
		||||
		SDL_Rect rect = music->tracker.select.rect;
 | 
			
		||||
 | 
			
		||||
		if(rect.h <= 0)
 | 
			
		||||
		{
 | 
			
		||||
			rect.y = music->tracker.row;
 | 
			
		||||
			rect.h = 1;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		for(s32 i = rect.y; i < rect.y + rect.h; i++)
 | 
			
		||||
		{
 | 
			
		||||
			s32 note = pattern->rows[i].note + pattern->rows[i].octave * NOTES - NoteStart;
 | 
			
		||||
 | 
			
		||||
			note += delta;
 | 
			
		||||
 | 
			
		||||
			if(note >= 0 && note < NOTES*OCTAVES)
 | 
			
		||||
			{
 | 
			
		||||
				pattern->rows[i].note = note % NOTES + NoteStart;
 | 
			
		||||
				pattern->rows[i].octave = note / NOTES;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		history_add(music->history);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void drawTrackerLayout(Music* music)
 | 
			
		||||
{
 | 
			
		||||
	SDL_Event* event = NULL;
 | 
			
		||||
@@ -1503,6 +1534,11 @@ static void drawTrackerLayout(Music* music)
 | 
			
		||||
		switch (event->type)
 | 
			
		||||
		{
 | 
			
		||||
		case SDL_MOUSEWHEEL:
 | 
			
		||||
			if(SDL_GetModState() & TIC_MOD_CTRL)
 | 
			
		||||
			{
 | 
			
		||||
				scrollNotes(music, event->wheel.y > 0 ? 1 : -1);
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{		
 | 
			
		||||
				enum{Scroll = NOTES_PER_BEET};
 | 
			
		||||
				s32 delta = event->wheel.y > 0 ? -Scroll : Scroll;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user