Advertisement
Double_G

CDJ1000 feldolgozas

Feb 8th, 2023
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.01 KB | Source Code | 0 0
  1. /////////////////////////////////////////////////////
  2. //SPI transfer DMA handler
  3. //
  4. //
  5. void DMA2_Stream5_IRQHandler(void)
  6. {
  7. HAL_DMA_IRQHandler(&hdma_spi1_tx);
  8.  
  9. if(CheckRXCRC()==1)
  10. {
  11. uint32_t ptch;
  12. uint8_t acc_t;
  13.  
  14. if((Rbuffer[14]&0x1) && PLAY_BUTTON_pressed==0) ///////////PLAY button
  15. {
  16. if(lock_control==0)
  17. {
  18. if(CUE_BUTTON_pressed==0)
  19. {
  20. if(play_enable)
  21. {
  22. play_enable = 0;
  23. change_speed = NEED_DOWN;
  24. }
  25. else
  26. {
  27. if(Tbuffer[19]&0x8) //SLIP MODE ENABLE
  28. {
  29. play_adr = slip_play_adr;
  30. change_speed = NO_CHANGE;
  31. slip_play_enable = 1;
  32. }
  33. else if(CUE_ADR!=(play_adr/294) && (Rbuffer[12]&0x20)==0) //when playback starts from any adress and touch disable
  34. {
  35. change_speed = NEED_UP;
  36. }
  37. else //when playback starts from CUE adress
  38. {
  39. change_speed = NO_CHANGE;
  40. }
  41. play_enable = 1;
  42. }
  43. }
  44. else
  45. {
  46. keep_to_play = 1;
  47. }
  48. }
  49. PLAY_BUTTON_pressed = 1;
  50. }
  51. else if((Rbuffer[14]&0x1)==0 && PLAY_BUTTON_pressed==1)
  52. {
  53. PLAY_BUTTON_pressed = 0;
  54. }
  55. else if((Rbuffer[14]&0x2) && CUE_BUTTON_pressed==0) ///////////CUE button
  56. {
  57. if(lock_control==0)
  58. {
  59. if(play_enable && ((Rbuffer[12]&0x20)==0)) //return to CUE, when track playing play && touch disable
  60. {
  61. pitch = 0;
  62. play_enable = 0;
  63. if(Tbuffer[19]&0x8) //SLIP MODE ENABLE
  64. {
  65. slip_play_enable = 0;
  66. slip_play_adr = 294*CUE_ADR;
  67. }
  68. CUE_OPERATION = CUE_NEED_CALL;
  69. }
  70. else if((play_enable==0) && (CUE_ADR!=(play_adr/294))) //Set new CUE, when track stopped
  71. {
  72. LOOP_OUT = 0;
  73. CUE_OPERATION = CUE_NEED_SET;
  74. }
  75. else if((play_enable==0) && (CUE_ADR==(play_adr/294))) //return to CUE adress, when track stopped
  76. {
  77. change_speed = NO_CHANGE;
  78. //play_adr = 294*CUE_ADR;
  79. if(Tbuffer[19]&0x8) //SLIP MODE ENABLE
  80. {
  81. slip_play_adr = play_adr;
  82. slip_play_enable = 1;
  83. }
  84. play_enable = 1;
  85. }
  86. else if(play_enable && ((Rbuffer[12]&0x20)!=0) && (Tbuffer[19]&0x20)) //Set new CUE, when track played and press jog and JOG in Vinyl MODE
  87. {
  88. LOOP_OUT = 0;
  89. CUE_OPERATION = CUE_NEED_SET;
  90. play_enable = 0;
  91. }
  92. }
  93. CUE_BUTTON_pressed = 1;
  94. }
  95. else if((Rbuffer[14]&0x2)==0 && CUE_BUTTON_pressed==1)
  96. {
  97. if(lock_control==0)
  98. {
  99. if(keep_to_play==0) //button play not pressed
  100. {
  101. play_enable = 0;
  102. pitch = 0;
  103. slip_play_enable = 0;
  104. play_adr = 294*CUE_ADR;
  105. if(Tbuffer[19]&0x8) //SLIP MODE ENABLE
  106. {
  107. slip_play_adr = play_adr;
  108. }
  109. // if((Tbuffer[19]&0x20)==0) //CDJ mode
  110. // {
  111. // pitch = 0;
  112. // }
  113. }
  114. else
  115. {
  116. keep_to_play = 0;
  117. }
  118. offset_adress = 0; /// temporary operation
  119. }
  120. CUE_BUTTON_pressed = 0;
  121. }
  122. else if((Rbuffer[14]&0x4) && REALTIME_CUE_BUTTON_pressed==0) ///////////REALTIME CUE button
  123. {
  124. if(lock_control==0)
  125. {
  126. if((play_enable==1) && (CUE_ADR!=(play_adr/294)) && loop_active==0) //Set new CUE, when track play
  127. {
  128. LOOP_OUT = 0;
  129. CUE_OPERATION = CUE_NEED_SET;
  130. }
  131. }
  132. REALTIME_CUE_BUTTON_pressed = 1;
  133. }
  134. else if((Rbuffer[14]&0x4)==0 && REALTIME_CUE_BUTTON_pressed==1)
  135. {
  136. REALTIME_CUE_BUTTON_pressed = 0;
  137. }
  138.  
  139.  
  140.  
  141.  
  142. else if((Rbuffer[14]&0x08) && LOOP_OUT_BUTTON_pressed==0) ///////////LOOP OUT button
  143. {
  144. if(lock_control==0)
  145. {
  146. if(loop_active==0 && CUE_ADR<play_adr/294)
  147. {
  148. if(QUANTIZE && dSHOW==WAVEFORM)
  149. {
  150. if(((play_adr/294)>(BEATGRID[bars-1]+((BEATGRID[bars] - BEATGRID[bars-1])/2))) || bars==0)
  151. {
  152. LOOP_OUT = BEATGRID[bars]; //next bar >> |
  153. }
  154. else
  155. {
  156. if(CUE_ADR==BEATGRID[bars-1])
  157. {
  158. LOOP_OUT = BEATGRID[bars]; //next bar >> |
  159. }
  160. else
  161. {
  162. LOOP_OUT = BEATGRID[bars-1]; //previous bar << |
  163. }
  164. CUE_OPERATION = CUE_NEED_CALL;
  165. }
  166. }
  167. else
  168. {
  169. LOOP_OUT = play_adr/294;
  170. CUE_OPERATION = CUE_NEED_CALL;
  171. }
  172. loop_active = 1;
  173. }
  174. }
  175. LOOP_OUT_BUTTON_pressed = 1;
  176. }
  177. else if((Rbuffer[14]&0x08)==0 && LOOP_OUT_BUTTON_pressed==1)
  178. {
  179. LOOP_OUT_BUTTON_pressed = 0;
  180. }
  181. else if((Rbuffer[14]&0x10) && RELOOP_BUTTON_pressed==0) ///////////RELOOP button
  182. {
  183. if(lock_control==0)
  184. {
  185. if(loop_active)
  186. {
  187. loop_active = 0;
  188. }
  189. else if(loop_active==0 && CUE_ADR<LOOP_OUT)
  190. {
  191. loop_active = 1;
  192. }
  193. if(dSHOW==WAVEFORM) //Redraw cue on dynamic waveform
  194. {
  195. forcibly_redraw = 1;
  196. }
  197. }
  198. RELOOP_BUTTON_pressed = 1;
  199. }
  200. else if((Rbuffer[14]&0x10)==0 && RELOOP_BUTTON_pressed==1)
  201. {
  202. RELOOP_BUTTON_pressed = 0;
  203. }
  204.  
  205.  
  206. if((Rbuffer[12]&0x2)==0 && REVERSE_SWITCH_pressed==0) ///////////reverse switch position
  207. {
  208. Tbuffer[17] |= 0x20; //enable red led reverse
  209. if(UTILITY_SETTINGS[6]==1) //SLIP+REVERSE MODE
  210. {
  211. if(Tbuffer[19]&0x8) //SLIP MODE ENABLE
  212. {
  213. keep_slip = 1;
  214. }
  215. else
  216. {
  217. Tbuffer[19] |= 0x8;
  218. if(play_enable)
  219. {
  220. slip_play_enable = 1;
  221. }
  222. slip_play_adr = play_adr;
  223. }
  224. }
  225. REVERSE_SWITCH_pressed = 1;
  226. }
  227. else if((Rbuffer[12]&0x2)!=0 && REVERSE_SWITCH_pressed==1)
  228. {
  229. if(Tbuffer[19]&0x8) //SLIP MODE ENABLE
  230. {
  231. play_adr = slip_play_adr;
  232. }
  233. if(keep_slip)
  234. {
  235. keep_slip = 0;
  236. }
  237. else if(UTILITY_SETTINGS[6]==1) //SLIP MODE OFF
  238. {
  239. slip_play_enable = 0;
  240. Tbuffer[19] &= 0xF7;
  241. }
  242. Tbuffer[17] &= 0xDF; //disable red led reverse
  243. REVERSE_SWITCH_pressed = 0;
  244. }
  245.  
Tags: cdj1000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement