CTRL+scroll to change notes
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
	 BADIM-PC\Vadim
					BADIM-PC\Vadim