Advertisement
Guest User

Untitled

a guest
Mar 31st, 2019
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.58 KB | None | 0 0
  1. #!/usr/bin/python2.7
  2. # pygame installieren:
  3. # sudo apt-get install python-pygame
  4.  
  5. # sys fuer das kontrollierte beenden
  6. import sys
  7. import os
  8. # Glob -> zum einlesen von Ordnerinhalten
  9. import glob
  10. # Pygame importieren und Initialisieren
  11. import pygame
  12.  
  13. from pygame import mixer
  14. from mutagen import File
  15. from mutagen.mp3 import MP3
  16. # PIL - Bibliothek
  17. from PIL import Image # vorher mit sudo apt-get install python-imaging => installieren
  18. from io import BytesIO
  19.  
  20. pygame.init()
  21.  
  22. #... wird feur Sleeptimer gebraucht
  23. clock = pygame.time.Clock()
  24. global frame_count
  25. frame_count = 0
  26. frame_rate = 60
  27. start_time = 10 #!!! Variable feuer den Sleeptimer in Sekunden
  28. zeit_var = 0 # hier wird die Sleeptime in Min gespeichert umrechnung folgt ganz unten
  29. zeit_schritt = 1 # hier werden die Zaehlschritte des Sleeptimers in min gespeichert
  30. zeit_max = 60 # maximal 60 min einstellbar
  31.  
  32. # Schleifendurchlauf
  33. schleife = True
  34. option = 0
  35.  
  36. # zur Augabe von Printanweisungen
  37. fehlersuche = 1
  38.  
  39. # Touchbilder Normal=1 oder Zusatzfunktionen=2
  40. ansicht = 1
  41.  
  42. # 0==Pi-, 1==Laptop-Modus, 2==Voyeger-USB-Stick -------------------------------------------------------------------------
  43. Laptop = 1
  44. #------------------------------------------------------------------------------------------------------------------------
  45.  
  46. global gesamter_inhalt # wird in -def lese_ein(pfad):- befuellt
  47. global mp3_ordner_liste
  48. global angewaehlter_index # wird gebraucht um bilder zu finden z.B. in -def mp3option():-
  49. global is_ne_mp3
  50. global mp3_abspiel
  51. global play_oder_pause
  52. global unterordner #wird in bildaufbau definiert und in on_touch benoetigt
  53.  
  54. angewaehlter_index = 0
  55. mp3_abspiel = 0
  56. is_ne_mp3 = 0
  57. play_oder_pause = 1
  58. unterordner = 0
  59. mp3anlauf = 0 # wird gebraucht damit die mp3 bein play-pauseanwahl ordnungsgemaes pausiert, zurueckgesetzt wird sie in -on_touch-
  60. krach = 0.5 # bestimmt die lautstaerke, wert zwischen 0.0 und 1.0 , wird in def lauter() / def leiser() geaendert
  61. bildformate = [".jpg", ".png", ".bmp"]
  62. beenden_menue = 1 # wird gebraucht um ein beendenmenue auszuwaehlen
  63. #beende_menue == 2 Pi -> faehrt nach ausgewaehlter zeit runter
  64. #beende_menue == 3 Pi -> faehrt nach ende der Mp3 runter
  65. ordner_durchspielen = 0
  66.  
  67.  
  68. # Bildgroesse definieren
  69. bildschirmgroesse = 800, 480
  70. bilder_links = 120, 120
  71. bilder_rechts = 120, 120
  72. pfeil_groesse = 120,120
  73. auswahlbildgroesse = 400, 400
  74. shutdownicon = 60, 60
  75. sanduhr_groesse = 150, 300
  76. abstand1 = 20
  77. extra_groesse = 70, 70
  78. abspiel_menue_groesse = 500, 130
  79. denkpunkt_groesse = 120, 120
  80. haeckchen_groesse = abspiel_menue_groesse[1], abspiel_menue_groesse[1]
  81. zahlenbutton_groesse = 300, 300
  82. zahlengroesse = 22 , 30
  83. zahlengroesse_2 = 88 , 120
  84. indexnr0_mitte_groesse= 120, 180
  85. mitte = (bildschirmgroesse[0]/2), (bildschirmgroesse[1]/2)
  86.  
  87. # Positionen-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  88. # position (Linke Seite/Begrenzung, Obere Seite/Begrenzung)
  89. # _rec [Linke Seite, Obere Seite, Breite (rechte Seite), Hoehe (untere Seite)]
  90. ## mittiges grosses Auswahlbild
  91. auswahlbildposition = (mitte[0] - (auswahlbildgroesse[0] / 2 )), (mitte[1] - (auswahlbildgroesse[1] / 2 ))
  92. auswahlbild_rec = [auswahlbildposition[0], auswahlbildposition[1], auswahlbildgroesse[0], auswahlbildgroesse[1]]
  93. ## Button Hoch
  94. pfeil_hochposition = ((((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) + (mitte[0] + (auswahlbildgroesse[0] / 2 ))) - (pfeil_groesse[0] / 2), (mitte[1] - (auswahlbildgroesse[1] / 2 )))
  95. pfeil_hoch_rec = [pfeil_hochposition[0], pfeil_hochposition[1], pfeil_groesse[0], pfeil_groesse[1]]
  96. ## Button Runter
  97. pfeil_runterposition = ((((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) + (mitte[0] + (auswahlbildgroesse[0] / 2 ))) - (pfeil_groesse[0] / 2), ((mitte[1] + (auswahlbildgroesse[1] / 2 ) - pfeil_groesse[1])))
  98. pfeil_runter_rec = [pfeil_runterposition[0], pfeil_runterposition[1], pfeil_groesse[0], pfeil_groesse[1]]
  99. ## MP3 abspielen
  100. play_pause_position = ((((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) + (mitte[0] + (auswahlbildgroesse[0] / 2 ))) - (bilder_rechts[0] / 2), (0 * (bildschirmgroesse[1] / 4)))
  101. play_pause_rec = [play_pause_position[0], play_pause_position[1], bilder_rechts[0], bilder_rechts[1]]
  102. stop_position = ((((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) + (mitte[0] + (auswahlbildgroesse[0] / 2 ))) - (bilder_rechts[0] / 2), (1 * (bildschirmgroesse[1] / 4)))
  103. stop_rec = [stop_position[0], stop_position[1], bilder_rechts[0], bilder_rechts[1]]
  104. lauter_positon = ((((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) + (mitte[0] + (auswahlbildgroesse[0] / 2 ))) - (bilder_rechts[0] / 2), (2 * (bildschirmgroesse[1] / 4)))
  105. lauter_rec = [lauter_positon[0], lauter_positon[1], bilder_rechts[0], bilder_rechts[1]]
  106. leiser_position = ((((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) + (mitte[0] + (auswahlbildgroesse[0] / 2 ))) - (bilder_rechts[0] / 2), (3 * (bildschirmgroesse[1] / 4)))
  107. leiser_rec = [leiser_position[0], leiser_position[1], bilder_rechts[0], bilder_rechts[1]]
  108. #uebergeordneten Ordner anwaehlen
  109. u_ordner1_position = (((mitte[0] - (auswahlbildgroesse[0] / 2 )) - ((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) - (bilder_links[0] / 2)), ((1 * (bildschirmgroesse[1] / 4)) -abstand1 ))
  110. u_ordner1_rec = [u_ordner1_position[0], u_ordner1_position[1], bilder_links[0], bilder_links[1]]
  111. # Extraeinstellungen
  112. extra_position = (((mitte[0] - (auswahlbildgroesse[0] / 2 )) - ((bildschirmgroesse[0] - auswahlbildgroesse[0]) / 4) - (extra_groesse[0] / 2)), (mitte[1] + (auswahlbildgroesse[1] / 2 ) - extra_groesse[1]))
  113. extra_rec = [extra_position[0], extra_position[1], extra_groesse[0], extra_groesse[1]]
  114. # Pi = Shutdown / alles andere Script ende
  115. beenden_position = (bildschirmgroesse[0] - (shutdownicon[0] * 2), (mitte[1] + (auswahlbildgroesse[1] / 2 ) - shutdownicon[1]))
  116. beenden_rec = [beenden_position[0], beenden_position[1], shutdownicon[0], shutdownicon[1]]
  117.  
  118. #beeden nach zeitablauf
  119. abspiel_meneu1_position = (mitte[0] - abspiel_menue_groesse[0] / 2, ((bildschirmgroesse[1]/2)-(abspiel_menue_groesse[1]/2))/2-(abspiel_menue_groesse[1]/2))
  120. abspiel_meneu1_rec = [abspiel_meneu1_position[0], abspiel_meneu1_position[1], abspiel_menue_groesse[0] , abspiel_menue_groesse[1]]
  121. haeckchen_position1 = (abspiel_meneu1_position[0] + (abspiel_menue_groesse[0]/2) - (haeckchen_groesse[0]/2), abspiel_meneu1_position[1] + (abspiel_menue_groesse[1]/2) - (haeckchen_groesse[1]/2))
  122. #beenden nach Mp3 ende
  123. abspiel_meneu2_position = (mitte[0] - abspiel_menue_groesse[0] / 2, (bildschirmgroesse[1]/2)-(abspiel_menue_groesse[1]/2))
  124. abspiel_meneu2_rec = [abspiel_meneu2_position[0], abspiel_meneu2_position[1], abspiel_menue_groesse[0] , abspiel_menue_groesse[1]]
  125. haeckchen_position2 = (abspiel_meneu2_position[0] + (abspiel_menue_groesse[0]/2) - (haeckchen_groesse[0]/2), abspiel_meneu2_position[1] + (abspiel_menue_groesse[1]/2) - (haeckchen_groesse[1]/2))
  126. #ordner durchspielen
  127. abspiel_meneu3_position = (mitte[0] - abspiel_menue_groesse[0] / 2, ((bildschirmgroesse[1]/2)+(abspiel_menue_groesse[1]/2)/2)+(abspiel_menue_groesse[1]/2))
  128. abspiel_meneu3_rec = [abspiel_meneu3_position[0], abspiel_meneu3_position[1], abspiel_menue_groesse[0] , abspiel_menue_groesse[1]]
  129. haeckchen_position3 = (abspiel_meneu3_position[0] + (abspiel_menue_groesse[0]/2) - (haeckchen_groesse[0]/2), abspiel_meneu3_position[1] + (abspiel_menue_groesse[1]/2) - (haeckchen_groesse[1]/2))
  130.  
  131. sanduhr_position = (extra_position[0], ((bildschirmgroesse[1] - (bildschirmgroesse[1] - extra_position[1])) /2) - sanduhr_groesse[1]/2)
  132. zahlenbutton_position = (((mitte[0]/2) + mitte[0]) - (zahlenbutton_groesse[0]/2), (sanduhr_position[1]+sanduhr_groesse[1]/2) - (zahlenbutton_groesse[1]/2))
  133. zahlenbutton_rec = [zahlenbutton_position[0], zahlenbutton_position [1], zahlenbutton_groesse[0], zahlenbutton_groesse[1]]
  134. zahlenbutton_zahl1_pos = (zahlenbutton_position[0]+(zahlenbutton_groesse[0]/2))-(abstand1/2)-zahlengroesse_2[0], (zahlenbutton_position[1]+(zahlenbutton_groesse[1]/2))-(zahlengroesse_2[1]/2)
  135. zahlenbutton_zahl2_pos = (zahlenbutton_position[0]+(zahlenbutton_groesse[0]/2))+(abstand1/2), zahlenbutton_zahl1_pos[1]
  136.  
  137. zeit_hoch_pfeil_position = ((((zahlenbutton_position[0] + zahlenbutton_groesse[0]) - (sanduhr_groesse[0]+zahlenbutton_groesse[0]) - extra_position[0])/2)-(pfeil_groesse[0]/2)+(sanduhr_position[0]+sanduhr_groesse[0]), sanduhr_position[1])
  138. zeit_hoch_pfeil_rec = [zeit_hoch_pfeil_position[0], zeit_hoch_pfeil_position[1], pfeil_groesse[0], pfeil_groesse[1]]
  139.  
  140. zeit_runter_pfeil_position = ((((zahlenbutton_position[0] + zahlenbutton_groesse[0]) - (sanduhr_groesse[0]+zahlenbutton_groesse[0]) - extra_position[0])/2)-(pfeil_groesse[0]/2)+(sanduhr_position[0]+sanduhr_groesse[0]), sanduhr_position[1] + sanduhr_groesse[1] - pfeil_groesse[1])
  141. zeit_runter_pfeil_rec = [zeit_runter_pfeil_position[0], zeit_runter_pfeil_position[1], pfeil_groesse[0], pfeil_groesse[1]]
  142.  
  143. zeit_runter_pos0 = abstand1, bildschirmgroesse[1]/2
  144. zeit_runter_pos1 = zeit_runter_pos0[0]+zahlengroesse[0], zeit_runter_pos0[1]
  145. zeit_runter_pos2 = zeit_runter_pos1[0]+zahlengroesse[0], zeit_runter_pos0[1]
  146. zeit_runter_pos3 = zeit_runter_pos2[0]+zahlengroesse[0], zeit_runter_pos0[1]
  147. zeit_runter_pos4 = zeit_runter_pos3[0]+zahlengroesse[0], zeit_runter_pos0[1]
  148.  
  149. zeit_hoch_pos0 = zeit_runter_pos0[0], zeit_runter_pos0[1]+zahlengroesse[1]+abstand1
  150. zeit_hoch_pos1 = zeit_runter_pos0[0]+zahlengroesse[0], zeit_hoch_pos0[1]
  151. zeit_hoch_pos2 = zeit_runter_pos1[0]+zahlengroesse[0], zeit_hoch_pos0[1]
  152. zeit_hoch_pos3 = zeit_runter_pos2[0]+zahlengroesse[0], zeit_hoch_pos0[1]
  153. zeit_hoch_pos4 = zeit_runter_pos3[0]+zahlengroesse[0], zeit_hoch_pos0[1]
  154.  
  155. indexnr0_mitte_pos = (mitte[0] - (indexnr0_mitte_groesse[0] / 2 )), (mitte[1] - (indexnr0_mitte_groesse[1] / 2 ))
  156. indexnr1_0_mitte_pos = (mitte[0] - (indexnr0_mitte_groesse[0])), (mitte[1] - (indexnr0_mitte_groesse[1] / 2 ))
  157. indexnr1_1_mitte_pos = (mitte[0]), (mitte[1] - (indexnr0_mitte_groesse[1] / 2 ))
  158. indexnr2_0_mitte_pos = (mitte[0] - (indexnr0_mitte_groesse[0] / 2 ) - indexnr0_mitte_groesse[0]), (mitte[1] - (indexnr0_mitte_groesse[1] / 2 ))
  159. indexnr2_1_mitte_pos = (mitte[0] - (indexnr0_mitte_groesse[0] / 2 )), (mitte[1] - (indexnr0_mitte_groesse[1] / 2 ))
  160. indexnr2_2_mitte_pos = (mitte[0] - (indexnr0_mitte_groesse[0] / 2 ) + indexnr0_mitte_groesse[0]), (mitte[1] - (indexnr0_mitte_groesse[1] / 2 ))
  161.  
  162. textanzeige = 200, 450
  163.  
  164. if fehlersuche == 1:
  165. print "auswahlbild_rec=: ", auswahlbild_rec
  166. print "hochbutton_rec=: ", pfeil_hoch_rec
  167. print "runterbutton_rec=: ", pfeil_runter_rec
  168. print "u-ordner1_rec=: ", u_ordner1_rec
  169. print "extra-rec=: ", extra_rec
  170. print "shutdownicon=: ", beenden_rec
  171. print "zeit_runter_pfeil_position", zeit_runter_pfeil_position
  172.  
  173. # Programmiermodus-------------------------------------------------------------------------------------------------------------------------------
  174.  
  175. if Laptop == 2: # vom Livestick aus wird gespielt
  176. bilderordner = "/media/mint/087B-0D92/Bilder/"
  177. mp3ordner = "/home/mint/heorspielbox/MP3s/"
  178. if Laptop == 1: # am Laptop wird gespielt
  179. bilderordner = "/home/schmidde/Hoerspielbox/Bilder/"
  180. mp3ordner = "/home/schmidde/Hoerspielbox/"
  181. if Laptop == 0: # am Pi wird gespielt
  182. bilderordner = "/media/pi/087B-0D92/Bilder/"
  183. mp3ordner = "/media/pi/087B-0D92/"
  184. if fehlersuche == 1:
  185. print ("Programmiermodus:", Laptop, "(0==Pi-, 1==Laptop-Modus, 2==Voyeger-USB-Stick)")
  186. print ("erster MP3 ordner im", mp3ordner.count("/"), "-ten unterorndern ...+") # http://www.devedge.de/python/zeichenketten/teilzeichenketten-suchen-python
  187. mp3_ordner_liste = mp3ordner
  188.  
  189. #------------------------------------------------------------------------------------------
  190.  
  191. hintergrundbild = bilderordner + "hintergrund.jpg"
  192. hintergrundbild2 = bilderordner + "hintergrund2.png"
  193. hintergrundbild3 = bilderordner + "hintergrund4.jpg"
  194. ordner_leer = bilderordner + "Fragezeichen2.png"
  195. fragezeichen = bilderordner + "Fragezeichen.png"
  196. pfeil_hoch = bilderordner + "Pfeil5_hoch.png"
  197. pfeil_runter = bilderordner + "Pfeil5_runter.png"
  198. play = bilderordner + "Play.png"
  199. pause = bilderordner + "pause.png"
  200. stop = bilderordner + "stop.png"
  201. lauter_bild = bilderordner + "lauter3.png"
  202. leiser_bild = bilderordner + "leiser3.png"
  203. extras = bilderordner + "extras.png"
  204. Zurueck = bilderordner + "Zurueck.png"
  205. beenden_bild = bilderordner + "Shutdown(Icon).png"
  206. sanduhr_icon = bilderordner + "stundenglass_icon.png"
  207. abspiel_meneu1 = bilderordner + "Zeiteinstellung.png"
  208. abspiel_meneu2 = bilderordner + "Zeiteinstellung2.png"
  209. abspiel_menue3 = bilderordner + "ordner_durchspielen.png"
  210. denkpunkt = bilderordner + "Denk_punkt.png"
  211. haeckchen = bilderordner + "Good2.png"
  212. zahlenbutton = bilderordner + "Grundbutton.png"
  213.  
  214. Zahl0 = bilderordner + "Zahl0.png"
  215. Zahl1 = bilderordner + "1.png"
  216. Zahl2 = bilderordner + "2.png"
  217. Zahl3 = bilderordner + "3.png"
  218. Zahl4 = bilderordner + "4.png"
  219. Zahl5 = bilderordner + "5.png"
  220. Zahl6 = bilderordner + "6.png"
  221. Zahl7 = bilderordner + "7.png"
  222. Zahl8 = bilderordner + "8.png"
  223. Zahl9 = bilderordner + "9.png"
  224. doppelpunkt = bilderordner + "doppelpunkt.png"
  225.  
  226. #--------------------------------------------------------------------------------------------
  227.  
  228. screen = pygame.display.set_mode(bildschirmgroesse)
  229. pygame.display.set_caption("Hoerspielbox")
  230.  
  231. if Laptop == 0:
  232. pygame.display.toggle_fullscreen()
  233. # pygame.mouse.set_visible(0) # 0== versteckt die den Mauszeiger 1== laest den Mauszeiger angezeigt
  234.  
  235. hintergrund = pygame.image.load(hintergrundbild).convert_alpha()
  236. hintergrund = pygame.transform.scale(hintergrund,bildschirmgroesse)
  237. screen.blit(hintergrund, (0,0))
  238. pygame.display.flip()
  239.  
  240. # Collidpiont--------------------------------------------------------------------------------
  241.  
  242. Auswalbild = pygame.draw.rect(hintergrund, (255,255,255), (auswahlbild_rec))
  243. HochPfeilBild = pygame.draw.rect(hintergrund, (255,255,255), (pfeil_hoch_rec))
  244. RunterPfeilBild = pygame.draw.rect(hintergrund, (255,255,255), (pfeil_runter_rec))
  245. PlayPauseBild = pygame.draw.rect(hintergrund, (255,255,255), (play_pause_rec))
  246. StopBild = pygame.draw.rect(hintergrund, (255,255,255), (stop_rec))
  247. LauterBild = pygame.draw.rect(hintergrund, (255,255,255), (lauter_rec))
  248. LeiserBild = pygame.draw.rect(hintergrund, (255,255,255), (leiser_rec))
  249. U_Ordner1 = pygame.draw.rect(hintergrund, (255,255,255), (u_ordner1_rec))
  250. ExtraBild = pygame.draw.rect(hintergrund, (255,255,255), (extra_rec))
  251. Beenden = pygame.draw.rect(hintergrund, (255,255,255), (beenden_rec))
  252. Beenden_Zeit = pygame.draw.rect(hintergrund, (255,255,255), (abspiel_meneu1_rec))
  253. Beenden_endeMp3 = pygame.draw.rect(hintergrund, (255,255,255), (abspiel_meneu2_rec))
  254. Ordner_durchspiel= pygame.draw.rect(hintergrund, (255,255,255), (abspiel_meneu3_rec))
  255. ZeitbuttonBild = pygame.draw.rect(hintergrund, (255,255,255), (zahlenbutton_rec))
  256. Zeit_hoch = pygame.draw.rect(hintergrund, (255,255,255), (zeit_hoch_pfeil_rec))
  257. Zeit_runter = pygame.draw.rect(hintergrund, (255,255,255), (zeit_runter_pfeil_rec))
  258.  
  259. #---------------------------------------------------------------------------------------------
  260.  
  261. MP3_End = pygame.USEREVENT + 1
  262.  
  263. pygame.mixer.music.set_endevent(MP3_End)
  264.  
  265. # on touch--------------------------------------------------------------------------------------------------------------------
  266.  
  267. def on_touch():
  268. global is_ne_mp3
  269. global mp3_abspiel
  270. global play_oder_pause
  271. global unterordner
  272. global ansicht
  273. global beenden_menue
  274. global start_time
  275. global ordner_durchspielen
  276. global frame_count # Neu bei 340
  277. soll_print = 0
  278.  
  279. if ansicht == 1:
  280. #mittiges Auswahlbild
  281. if Auswalbild.collidepoint(pygame.mouse.get_pos()):
  282. if soll_print == 1:
  283. print ("in -on_touch- Auswahlbild Mitte ausgewaehlt")
  284. if is_ne_mp3 == 0:
  285. if soll_print == 1:
  286. print ("in -on_touch-: ein Ordner wurde angewaehlt -> Name umbauen und Listen neu einlesen")
  287. ordner_aufwaertz()
  288. else:
  289. if soll_print == 1:
  290. print ("in -on_touch-: eine MP3 wurde angewaehlt -> Pfeile ausblenden, laut/leiser Pause/play und Stop einblenden")
  291. if play_oder_pause == 0:
  292. play_oder_pause = 1
  293. mp3_abspiel = 1
  294. pygame.mixer.music.stop()
  295. lade_mp3_und_play()
  296. if soll_print == 1:
  297. print ("in on_touch pygame.mixer.get_init(): ", pygame.mixer.get_init())
  298. print ("in on_touch pygame.mixer.music.unpause():", pygame.mixer.music.unpause())
  299. bildaufbau()
  300. if mp3_abspiel == 0: # im Auswahlmodus soll nur hoch oder runter angezeigt werden
  301. #Hoch und Runter Button
  302. if HochPfeilBild.collidepoint(pygame.mouse.get_pos()):
  303. if soll_print == 1:
  304. print ("in -on_touch- Button hoch ausgewaehlt")
  305. zaehl_hoch()
  306. if RunterPfeilBild.collidepoint(pygame.mouse.get_pos()):
  307. if soll_print == 1:
  308. print ("in -on_touch- Button runter ausgewaehlt")
  309. zaehl_runter()
  310. else: # sonst sollen die Abspielbutton zu sehen sein
  311. if PlayPauseBild.collidepoint(pygame.mouse.get_pos()):
  312. if soll_print == 1:
  313. print ("in -on_touch- Play oder Pause ausgewaehlt")
  314. if play_oder_pause == 1:
  315. play_oder_pause = 0
  316. if soll_print == 1:
  317. print ("in -on_touch- Pause ausgewaehlt")
  318. print ("play_oder_pause ==:", play_oder_pause )
  319. bildaufbau()
  320. else:
  321. pygame.mixer.music.unpause()
  322. if soll_print == 1:
  323. print ("in -on_touch- Play ausgewaehlt")
  324. play_oder_pause = 1
  325. bildaufbau()
  326. if StopBild.collidepoint(pygame.mouse.get_pos()):
  327. stop_funktion()
  328. if soll_print == 1:
  329. print ("in -on_touch- Stop ausgewaehlt")
  330. mp3_abspiel = 0
  331. bildaufbau()
  332. if LauterBild.collidepoint(pygame.mouse.get_pos()):
  333. if soll_print == 1:
  334. print ("in -on_touch- eins Lauter ausgewaehlt")
  335. if krach < 1.0:
  336. lauter()
  337. if LeiserBild.collidepoint(pygame.mouse.get_pos()):
  338. if soll_print == 1:
  339. print ("in -on_touch- eins Leiser ausgewaehlt")
  340. if krach > 0.1:
  341. leiser()
  342.  
  343. if unterordner > 0:
  344. if U_Ordner1.collidepoint(pygame.mouse.get_pos()):
  345. if soll_print == 1:
  346. print ("in -on_touch- U-Ordner-Bildchen wurde gedrueckt")
  347. print ("auf zum nullten Ordnder")
  348. mp3_abspiel = 0
  349. stop_funktion()
  350. ordner_abwaerz()
  351. #Extrabutton
  352. if ExtraBild.collidepoint(pygame.mouse.get_pos()):
  353. if soll_print == 1:
  354. print "jetzt sollte das bild auf extras umspringen"
  355. if ansicht == 3:
  356. ansicht = 2
  357. bildaufbau()
  358. elif ansicht == 2:
  359. ansicht = 1
  360. bildaufbau()
  361. elif ansicht == 1:
  362. ansicht = 2
  363. bildaufbau()
  364.  
  365. if ansicht == 2: # auswahlmeneu welches runterfahrverfahren angewaendet werden soll
  366. if Beenden_Zeit.collidepoint(pygame.mouse.get_pos()):
  367. if soll_print == 1:
  368. print "es wurde das Sanduhrmeneu ausgewaehlt -> Zeit einstellen -> Bildschirm get in standby -> mp3 endet nach eingestellter zeit -> pi faehrt runter"
  369. if beenden_menue == 2: #ab hier neu 340
  370. beenden_menue = 1
  371. ansicht = 1
  372. bildaufbau()
  373. elif beenden_menue != 2: #bis hier neu 340
  374. ansicht = 3
  375. bildaufbau()
  376.  
  377. if Beenden_endeMp3.collidepoint(pygame.mouse.get_pos()):
  378. if soll_print == 1:
  379. print "es wurde das zuendespiel meneu ausgewaehlt -> Bildschirm get in standby -> mp3 spielt zuende -> pi faehrt runter"
  380. print "Variable -beenden_menue- ist auf 3 gesetzt"
  381. if beenden_menue == 3:
  382. beenden_menue = 1
  383. ansicht = 1
  384. bildaufbau()
  385. elif beenden_menue != 3:
  386. beenden_menue = 3
  387. if ordner_durchspielen == 1:
  388. ordner_durchspielen = 0
  389. ansicht = 1
  390. bildaufbau()
  391. if Ordner_durchspiel.collidepoint(pygame.mouse.get_pos()):
  392. if soll_print == 1:
  393. print "Jetzt wird der ordner druchgespielt, dann abspielstop"
  394. if beenden_menue == 3: # setzt Option 3 ausser kraft
  395. beenden_menue = 1
  396. if ordner_durchspielen == 1: # hier wird die durchspilen-Option auf "0" gesetzt
  397. ordner_durchspielen = 0
  398. ansicht = 1
  399. bildaufbau()
  400. elif ordner_durchspielen == 0: # hier wird die durchspilen-Option auf "1" gesetzt
  401. ordner_durchspielen = 1
  402. ansicht = 1
  403. bildaufbau()
  404. if soll_print == 1:
  405. print "in ontouch: Variable -ordner_durchspielen-:", ordner_durchspielen
  406.  
  407.  
  408. if Beenden.collidepoint(pygame.mouse.get_pos()):
  409. if soll_print == 1:
  410. print ("in -on_touch- Beenden angewaehlt")
  411. beenden_funktion()
  412.  
  413. if ansicht == 3: # Zeiteinstellmeneu
  414.  
  415. if (zeit_var + zeit_schritt) < zeit_max:
  416. if Zeit_hoch.collidepoint(pygame.mouse.get_pos()):
  417. if soll_print == 1:
  418. print "jetzt sollte Variable -zeit_var- um Variable -zeit_schritt- hochgezaehlt werden",
  419. print " ", zeit_var ," ", zeit_schritt
  420. zeit_zaehl_hoch()
  421.  
  422. if (zeit_var - zeit_schritt) >= 0 :
  423. if Zeit_runter.collidepoint(pygame.mouse.get_pos()):
  424. if soll_print == 1:
  425. print "jetzt sollte Variable -zeit_var- um Variable -zeit_schritt- hochgezaehlt werden",
  426. print " ", zeit_var ," ", zeit_schritt
  427. zeit_zaehl_runter()
  428.  
  429. if zeit_var > 0:
  430. if ZeitbuttonBild.collidepoint(pygame.mouse.get_pos()):
  431. frame_count = 0
  432. if soll_print == 1:
  433. print ("in -on_touch- Zeitbutton wurde gedrueckt")
  434. if Laptop == 1:
  435. start_time = zeit_var
  436. beenden_menue = 2
  437. ansicht = 1
  438. bildaufbau()
  439. if Laptop == 0:
  440. start_time = zeit_var * 60
  441. beenden_menue = 2
  442. ansicht = 1
  443. bildaufbau()
  444.  
  445.  
  446. if Beenden.collidepoint(pygame.mouse.get_pos()):
  447. if soll_print == 1:
  448. print ("in -on_touch- Beenden angewaehlt")
  449. beenden_funktion()
  450.  
  451.  
  452. # loadbild--------Bild laden, scallieren, positionieren-----------------------------------------------------------------
  453.  
  454. def loadbild(Bild, Groesse, Position):
  455.  
  456. soll_print = 0
  457. if soll_print == 1:
  458. print ("in -def loadbild-, -Bild-:", Bild)
  459. image = pygame.image.load(Bild)
  460. if image.get_alpha() is None:
  461. image = image.convert()
  462. else:
  463. image = image.convert_alpha()
  464.  
  465. image = pygame.transform.scale(image,Groesse)
  466. Neu = screen.blit(image, Position)
  467. pygame.display.update(Neu)
  468.  
  469. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  470.  
  471. def erstelle_text(Text, pos_x, pos_y):
  472. ## schriftart und groesse
  473. eigenschaften = pygame.font.SysFont("monospace", 15)
  474. ## Text Anti-alias und RGB Farbe
  475. erstelle = eigenschaften.render((Text), 1, (0,255,0))
  476. ## zusammenfassung und positionierung
  477. Fertig = screen.blit(erstelle, (pos_x, pos_y))
  478. pygame.display.update(Fertig)
  479.  
  480. #----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  481.  
  482. def hoch_runter_pfeile():
  483.  
  484. soll_print = 0
  485.  
  486. if soll_print == 1:
  487. print ("in -def hoch_runter_pfeile():- :")
  488. print ("Variable -mp3_abspiel- =:", mp3_abspiel)
  489. if mp3_abspiel == 0:
  490. loadbild(pfeil_hoch, bilder_rechts, pfeil_hochposition)
  491. loadbild(pfeil_runter, bilder_rechts, pfeil_runterposition)
  492.  
  493. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  494.  
  495. def lade_mp3_und_play():
  496.  
  497. soll_print = 0
  498. if soll_print == 1:
  499. print "in -def lade_mp3_und_play()-:"
  500. pygame.mixer.music.stop()
  501. if soll_print == 1:
  502. print "-pygame.mixer.music.stop()-"
  503. clip = pygame.mixer.music.load(mp3_ordner_liste[angewaehlter_index])
  504. if soll_print == 1:
  505. print "in -def lade_mp3_und_play()-:"
  506. print "clip = pygame.mixer.music.load(mp3_ordner_liste[angewaehlter_index]):", mp3_ordner_liste[angewaehlter_index]
  507. pygame.mixer.music.play()
  508. if soll_print == 1:
  509. print " -pygame.mixer.music.play()-"
  510. print "pygame.mixer.get_init(): ", pygame.mixer.get_init()
  511. print "pygame.mixer.music.unpause():", pygame.mixer.music.unpause()
  512.  
  513. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  514.  
  515. def mp3_abspielbutton():
  516. global mp3anlauf
  517.  
  518. soll_print = 0
  519. if mp3anlauf == 0:
  520. lade_mp3_und_play()
  521. mp3anlauf = 1
  522. if soll_print == 1:
  523. print ("in -def abspielbutton():- :")
  524. if play_oder_pause == 1:
  525. loadbild(pause, bilder_rechts, play_pause_position)
  526. pygame.mixer.music.unpause() # hier muss die mp3 schon geladen sein
  527. if soll_print == 1:
  528. print ("Variable -play_oder_pause- steht auf:", play_oder_pause, "-> MP3 lauuft jetzt kann Pause gedrueckt werden")
  529. else:
  530. loadbild(play, bilder_rechts, play_pause_position)
  531. pygame.mixer.music.pause()
  532. if soll_print == 1:
  533. print ("Variable -play_oder_pause- steht auf:", play_oder_pause, "-> MP3 pausiert jetzt kann Play gedrueckt werden")
  534. loadbild(stop, bilder_rechts, stop_position)
  535. # loadbild(lauter_bild, bilder_rechts, lauter_positon)
  536. # loadbild(leiser_bild, bilder_rechts, leiser_position)
  537.  
  538. #--------------------------------------------------------------------------------------------------------------------------------------------------
  539.  
  540. def stop_funktion():
  541. global mp3anlauf
  542.  
  543. soll_print = 0
  544. pygame.mixer.music.stop()
  545. mp3anlauf = 0
  546. if soll_print == 1:
  547. print ("in -def stop_funktion():- ")
  548. print ("es wurde der Stop-Button betaetigt")
  549.  
  550. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  551. def lauter():
  552. global krach
  553.  
  554. soll_print = 0
  555. if soll_print == 1:
  556. print ("in -def lauter()-")
  557. print ("Krach ist jetzt:", krach)
  558. ist = krach
  559. neu = ist + 0.1
  560. if neu > 1.0:
  561. krach = 1.0
  562. else:
  563. krach = neu
  564. pygame.mixer.music.set_volume(krach)
  565. if soll_print == 1:
  566. print ("in -def lauter()-")
  567. print ("Krach ist jetzt:", krach)
  568. bildaufbau()
  569.  
  570. #-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  571.  
  572. def leiser():
  573. global krach
  574.  
  575. soll_print = 0
  576. if soll_print == 1:
  577. print ("in -def leiser()-")
  578. print ("Krach ist jetzt:", krach)
  579. ist = krach
  580. neu = ist - 0.1
  581. if neu < 0.1:
  582. krach = 0.1
  583. else:
  584. krach = neu
  585. pygame.mixer.music.set_volume(krach)
  586. if soll_print == 1:
  587. print ("in -def leiser()-")
  588. print ("Krach ist jetzt:", krach)
  589. bildaufbau()
  590.  
  591. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  592.  
  593. def zaehl_hoch():
  594. # mp3_ordner_liste = die Sortierte Liste aus der Ordner und MP3s ausgewaehlt werden koennen
  595. # angewaehlt_index = gerade angewaehlter Inhalt von dem aus hoch gezaehlt wird (index ermitteln und +1)
  596. global mp3_ordner_liste
  597. global angewaehlter_index
  598.  
  599. soll_print = 0
  600. index_aktuell = angewaehlter_index
  601. index_max = len(mp3_ordner_liste)
  602. index_neu = 0
  603. if soll_print == 1:
  604. print ("in -def zaehl_hoch():- :")
  605. print ("index_aktuell =", index_aktuell)
  606. print ("index_max =", index_max)
  607. if index_aktuell < (index_max - 1):
  608. index_neu = index_aktuell + 1
  609. else:
  610. index_neu = 0
  611. if soll_print == 1:
  612. print ("index_aktuell =", index_aktuell)
  613. print ("index_max =", index_max)
  614. print ("index_neu =", index_neu)
  615. angewaehlter_index = index_neu
  616. bildaufbau()
  617.  
  618. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  619.  
  620. def zaehl_runter():
  621. # mp3_ordner_liste = die Sortierte Liste aus der Ordner und MP3s ausgewaehlt werden koennen
  622. # angewaehlt_index = gerade angewaehlter Inhalt von dem aus hoch gezaehlt wird (index ermitteln und +1)
  623. global mp3_ordner_liste
  624. global angewaehlter_index
  625.  
  626. soll_print = 0
  627. index_aktuell = angewaehlter_index
  628. index_max = len(mp3_ordner_liste)
  629. index_neu = 0
  630. if soll_print == 1:
  631. print ("in -def zaehl_runter():- :")
  632. print ("index_aktuell =", index_aktuell)
  633. print ("index_max =", index_max)
  634. if index_aktuell > 0:
  635. index_neu = index_aktuell - 1
  636. else:
  637. index_neu = (index_max - 1)
  638. if soll_print == 1:
  639. print ("index_aktuell =", index_aktuell)
  640. print ("index_max =", index_max)
  641. print ("index_neu =", index_neu)
  642. angewaehlter_index = index_neu
  643. bildaufbau()
  644.  
  645. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  646.  
  647. def zeit_zaehl_hoch():
  648. global zeit_var
  649.  
  650. soll_print = 0
  651.  
  652. zeit_aktuell = zeit_var
  653.  
  654. if (zeit_aktuell + zeit_schritt) < zeit_max:
  655. if soll_print == 1:
  656. print "zeit_var = zeit_aktuell + zeit_schritt: ", zeit_var, "=", zeit_aktuell, "+", zeit_schritt
  657. zeit_var = zeit_aktuell + zeit_schritt
  658. bildaufbau()
  659.  
  660. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  661.  
  662. def zeit_zaehl_runter():
  663. global zeit_var
  664.  
  665. soll_print = 0
  666.  
  667. zeit_aktuell = zeit_var
  668.  
  669. if (zeit_aktuell - zeit_schritt) > 0:
  670. if soll_print == 1:
  671. print "zeit_var = zeit_aktuell - zeit_schritt: ", zeit_var, "=", zeit_aktuell, "-", zeit_schritt
  672. zeit_var = zeit_aktuell - zeit_schritt
  673. bildaufbau()
  674. #--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  675.  
  676. def naechste_mp3():
  677. global ordner_durchspielen
  678. global mp3_abspiel
  679. soll_print = 1
  680. index_aktuell = angewaehlter_index + 1
  681. index_max = len(mp3_ordner_liste)
  682. if soll_print == 1:
  683. print "in Funktion -naechste_mp3()-: nimmt aktuelle MP3 -> nimmt die in der List kommende MP3 -> laesst diese Abspielen -> bis letzte MP3 im Ordner erreicht -> dann Stopp Funktion"
  684. print "index_aktuell:", index_aktuell
  685. print "index_max: ", index_max
  686. if index_aktuell >= index_max:
  687. if soll_print == 1:
  688. print "Letzte mp3 im Ordner wurde abbespielt"
  689. ordner_durchspielen = 0
  690. mp3_abspiel = 0
  691. stop_funktion()
  692. bildaufbau()
  693. elif index_aktuell < index_max:
  694. if soll_print == 1:
  695. print "Es ist noch nicht die Letzt Mp3 -> eins weiter spulen -> mp3 Abspielen"
  696. zaehl_hoch()
  697. lade_mp3_und_play()
  698.  
  699.  
  700. #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  701.  
  702. def lese_ein(pfad):
  703. global gesamter_inhalt
  704. soll_print = 0 # 0 == Printauftraege aus, ==1 gefilterterordnerinhalt, ==2 Odnerfilterung, ==3 MP3 sortierung
  705. gesamter_inhalt = [] # hier wird temporaer der gesammte Ordnder eingelesen
  706. temp_liste_inhalt_mp3 = [] #
  707. temp_liste_inhalt_ordner = []
  708. temp_liste_anzahl = [] # anzahl der Elemente aus "gesamter_inhalt"
  709. temp_liste_inhalt_gefiltert = []
  710. gesamter_inhalt = glob.glob(pfad + "*")
  711. temp_liste_anzahl = len(gesamter_inhalt)
  712.  
  713. if temp_liste_anzahl >= 1:
  714. for i in gesamter_inhalt: # hier beginnt die umsortierung der Ordner mit Bildern
  715. temp_i = i+"/"
  716. if len(glob.glob(temp_i + "*")) >= 1: # ueberpruefung ob i ein ordner ist
  717. if soll_print == 2:
  718. print ("in lese_ein_pfad():")
  719. print ("ueberprueft (if len(glob.glob(temp_i)) >= 1:):" , len(glob.glob(temp_i)))
  720. print (i, "es ist ein Ordner")
  721. for j in bildformate: # Bildformate = Variablen-Liste die weiter oben Definiert ist
  722. temp_j = i+j # zusammenbau Ordnername + Bildformatendung (z.B. ".jpg")
  723. if soll_print == 2:
  724. print (j, "/ i+j:", temp_j, "gecheckt")
  725. if temp_j in gesamter_inhalt: # ueberpruefung ob es zum Ordner ein gleichnamiges Bild gibt
  726. temp_liste_inhalt_ordner.append(i) # fuer Ordner "i" gibt es ein Bild ("i"+"j") und wird in "temp_liste_inhalt_ordner" hinzugefuegt
  727. # !!! Ordner ohne gleichnamiges Bild wird nicht in "temp_liste_inhalt_ordner" hinzugefuegt
  728. if soll_print == 2:
  729. print (temp_j, "/", j, "j ist in Liste -gesamter_inhalt-")
  730. break
  731. else:
  732. if soll_print == 2:
  733. print (temp_j, "/", j, "j ist nicht in Liste -gesamter_inhalt-")
  734. if soll_print == 2:
  735. print ("es sind: ", len(temp_liste_inhalt_ordner), "Inhalt in -temp_liste_inhalt_ordner-")
  736. print ("inhalt von -temp_liste_inhalt_ordner-: ", temp_liste_inhalt_ordner)
  737.  
  738. if fehlersuche == 2:
  739. print (len(temp_liste_inhalt_ordner), "listenininhalte sind in temp_liste_inhalt_ordner")
  740. print ("Inhalt von -temp_liste_inhalt_ordner-: ", temp_liste_inhalt_ordner)
  741.  
  742. for i in gesamter_inhalt:
  743. if soll_print == 3:
  744. print ("es wird Element: ", i, "ueberprueft")
  745. if ".mp3" in i:
  746. temp_liste_inhalt_mp3.append(i)
  747. if soll_print == 3:
  748. print ("Element i ist eine MP3 und ist zu -temp_liste_inhalt_mp3- hinzugefuegt")
  749. if soll_print == 3:
  750. print ("in -temp_liste_inhalt_mp3- sind ", len(temp_liste_inhalt_mp3)," elemente, diese sind:", temp_liste_inhalt_mp3)
  751.  
  752. temp_liste_inhalt_gefiltert = sorted(temp_liste_inhalt_ordner + temp_liste_inhalt_mp3)
  753. if soll_print == 1:
  754. print ("in -def lese_ein(pfad)- in -temp_liste_inhalt_gefiltert- sind ", len(temp_liste_inhalt_gefiltert)," elemente")
  755. print ("diese sind:", temp_liste_inhalt_gefiltert)
  756. return temp_liste_inhalt_gefiltert
  757.  
  758. else:
  759. print ("Fehler in Funktion -lese_ein(pfad)- ")
  760. print ("ueberpruefe den Inhalt vom Pfad :", pfad)
  761. zurueck()
  762.  
  763. #---------------------------------------------------------------------------------------------------------------------------------------------
  764.  
  765. def zurueck():
  766. loadbild(ordner_leer, auswahlbildgroesse, auswahlbildposition)
  767.  
  768. #----------------------------------------------------------------------------------------------------------------------------------------------
  769. # wurde ein Ordner ausgewaehlt so wird hier der Name geaender, und die durchzublaeternde liste uebergeben (wir in On_touchgebraucht)
  770. def ordner_aufwaertz():
  771. global mp3_ordner_liste
  772. global angewaehlter_index
  773. soll_print = 0
  774. temp_name = ""
  775.  
  776. if soll_print == 1:
  777. print ("in -def ordner_aufwaertz():- :")
  778. print ("uebergebener OrdnerName:", mp3_ordner_liste[angewaehlter_index])
  779. print ("zurueckgegebender Name:", (mp3_ordner_liste[angewaehlter_index]) + "/")
  780.  
  781. mp3_ordner_liste = lese_ein((mp3_ordner_liste[angewaehlter_index]) + "/")
  782. angewaehlter_index = 0
  783. bildaufbau()
  784.  
  785. #----------------------------------------------------------------------------------------------------------------------------------------------
  786. # hier soll es ein Ordner abwaerz gehen
  787. # nehme Namen rutsche von rechts nach links mit ( .rindex("/")) bis zu diesem letzten zeichen zurueck
  788. # lese ordner neu ein
  789. # ermittle aus dem alten Namen den Index des Orndern und uebergib ihn
  790.  
  791. def ordner_abwaerz():
  792. global mp3_ordner_liste
  793. global angewaehlter_index
  794. global unterordner
  795.  
  796. soll_print = 0
  797. if soll_print == 1:
  798. print ("in def_ordner_abwaerz(): ...")
  799. print ("der String der abwaerz gerechnet werden soll:", mp3_ordner_liste[0])
  800. temp_name1 = mp3_ordner_liste[0][:mp3_ordner_liste[0].rindex("/")]
  801. temp_name2 = temp_name1[:temp_name1.rindex("/")] + "/"
  802. temp_name3 = temp_name1[temp_name1.rindex("/") + 1:]
  803. if soll_print == 1:
  804. print ("Neuer/Alter OrdnerName:",temp_name1)
  805. print ("Neuer/Alter OrdnerName:",temp_name2)
  806. print ("zu suchender IndexName",temp_name3)
  807. mp3_ordner_liste_temp = lese_ein(temp_name2)
  808. if soll_print == 1:
  809. print ("Neueingelesener Inhat:",mp3_ordner_liste_temp)
  810. temp_index = mp3_ordner_liste_temp.index(temp_name1)
  811. if soll_print == 1:
  812. print ("zu uebergebender Index:",temp_index)
  813. mp3_ordner_liste = mp3_ordner_liste_temp
  814. angewaehlter_index = temp_index
  815. # unterordner = unterordner - 1
  816. bildaufbau()
  817.  
  818. #----------------------------------------------------------------------------------------------------------------------------------------------
  819.  
  820. def mp3option(name):
  821. soll_print = 0
  822. temp_mp3bild = ""
  823. temp_name = name [:len(name)-4]
  824. if soll_print == 1:
  825. print "in -def mp3option(name):- :"
  826. print "name:", name
  827. print "temp_name ist:", temp_name
  828. # ab hier wird ueberprueft ob es Bild zur MP3 giebt
  829. for i in bildformate: # Bildformate = Variablen-Liste die weiter oben Definiert ist
  830. x = temp_name + i # zusammenbau MP3-Name + Bildformatendung (z.B. ".jpg")
  831. if x in gesamter_inhalt:
  832. temp_mp3bild = x
  833. loadbild(x, auswahlbildgroesse, auswahlbildposition)
  834. break
  835. if len(temp_mp3bild) < 1:
  836. if soll_print == 1:
  837. print "suche weiter", name
  838. audio = MP3(name)
  839. mytagstring = audio.pprint()
  840. if mytagstring.find('APIC') >= 0:
  841. if soll_print == 1:
  842. print "bild in mp3"
  843. try:
  844. Bild = ((Image.open(BytesIO(audio.tags['APIC:'].data))).convert('RGB')).resize((auswahlbildgroesse), Image.ANTIALIAS).save("Fertig.png")
  845. if soll_print == 1:
  846. print "bild in MP3 am ende von -try-"
  847. pygame.display.update(screen.blit((pygame.image.load("Fertig.png")), auswahlbildposition))
  848. except:
  849. if soll_print == 1: #bei manchen MP3s gab es eine Fehlermeldung
  850. print "doofes Bild in MP3"
  851. loadbild(fragezeichen, auswahlbildgroesse, auswahlbildposition)
  852. else:
  853. try:
  854. text1 = (str(angewaehlter_index + 1))
  855. text1laenge = len(text1)
  856. if soll_print == 1:
  857. print ("Indexnummer: ", text1)
  858. print ("text1laenge: ", text1laenge)
  859. temp_name1 = mp3_ordner_liste[0][:mp3_ordner_liste[0].rindex("/")]
  860. temp_name2 = temp_name1[:temp_name1.rindex("/")] + "/"
  861. ornder_temp = glob.glob(temp_name2 + "*")
  862. for i in bildformate:
  863. unterordnerbildchen = temp_name1 + i
  864. if soll_print == 1:
  865. print (temp_name1, "+", i, "gecheckt")
  866. print ("temp_name2 ist:", unterordnerbildchen)
  867. if unterordnerbildchen in ornder_temp:
  868. if soll_print == 1:
  869. print ("unterordnerbildchen in mp3ordner")
  870. loadbild(unterordnerbildchen, auswahlbildgroesse, auswahlbildposition) # Ersatzbild vom uebergeordneten Ordner
  871. if text1laenge == 1:
  872. loadbild(bilderordner+text1[0]+".png", indexnr0_mitte_groesse, indexnr0_mitte_pos)
  873. if text1laenge == 2:
  874. loadbild(bilderordner+text1[0]+".png", indexnr0_mitte_groesse, indexnr1_0_mitte_pos)
  875. loadbild(bilderordner+text1[1]+".png", indexnr0_mitte_groesse, indexnr1_1_mitte_pos)
  876. if text1laenge == 3:
  877. loadbild(bilderordner+text1[0]+".png", indexnr0_mitte_groesse, indexnr2_0_mitte_pos)
  878. loadbild(bilderordner+text1[1]+".png", indexnr0_mitte_groesse, indexnr2_1_mitte_pos)
  879. loadbild(bilderordner+text1[2]+".png", indexnr0_mitte_groesse, indexnr2_2_mitte_pos)
  880.  
  881. except:
  882. if soll_print == 1:
  883. print "auch kein Bild in MP3"
  884. loadbild(fragezeichen, auswahlbildgroesse, auswahlbildposition)
  885.  
  886. #-------------------------------------------------------------------------------------------------------------------------------------------------
  887. #Hier wird zum Ordner das passende Bild rausgesucht und zur Drastellung (def_bildaufbau() ) gebracht (grossens Auswahlbild)
  888. def ordneroption(name):
  889. soll_print = 0
  890. temp_name = ""
  891. if soll_print == 1:
  892. print ("an -def ordneroption(name):- wurde folgender name uebergeben:", name)
  893. for i in bildformate:
  894. temp_name = name + i
  895. if soll_print == 1:
  896. print (name, "+", i, "gecheckt")
  897. print ("temp_name ist:", temp_name)
  898. if temp_name in gesamter_inhalt:
  899. loadbild(temp_name, auswahlbildgroesse, auswahlbildposition)
  900. break
  901.  
  902. #--------------------------------------------------------------------------------------------------------------------------------------------------
  903. # mp3_ordner_liste -> eine ordnerebne tiefer gehen -> name Extrahieren -> passendes Bilchen finden -> anzeigen lassen
  904. # -> ... .rindex("/") -> -> for i in bildformate -> loadbild( ... , bilder_links, u_ordner1_position)
  905. def ordner_zureuckbildchen():
  906. soll_print = 0
  907. if soll_print == 1:
  908. print ("in def_ordner_zureuckbildchen():")
  909. print ("uebergebender ordnername:", mp3_ordner_liste[0])
  910. temp_name1 = mp3_ordner_liste[0][:mp3_ordner_liste[0].rindex("/")]
  911. temp_name2 = temp_name1[:temp_name1.rindex("/")] + "/"
  912. ornder_temp = glob.glob(temp_name2 + "*")
  913. if soll_print == 1:
  914. print ("Neuer/Alter OrdnerName1:",temp_name1)
  915. print ("Neuer/Alter OrdnerName2:",temp_name2)
  916. print ("Inhalt von ornder_temp :",ornder_temp)
  917. for i in bildformate:
  918. temp_name3 = temp_name1 + i
  919. if soll_print == 1:
  920. print (temp_name1, "+", i, "gecheckt")
  921. print ("temp_name2 ist:", temp_name3)
  922. if temp_name3 in ornder_temp:
  923. if soll_print == 1:
  924. print ("temp_name3 in mp3ordner")
  925. loadbild(temp_name3, bilder_links, u_ordner1_position)
  926.  
  927. #-------------------------------------------------------------------------------------------------------------------------------------------------------------
  928.  
  929. def beenden_funktion():
  930. soll_print = 0
  931. if soll_print == 1:
  932. print (" in -beenden_funktion():- funktion laeuft")
  933. if Laptop == 0:
  934. os.system("sudo shutdown -h now")
  935. if Laptop > 0:
  936. print (" in -beenden_funktion():- Script wurde beendet")
  937. pygame.quit();
  938. sys.exit(0);
  939. schleife = False;
  940.  
  941. #--------------------------------------------------------------------------------------------------------------------------------------------------
  942. def bildaufbau():
  943. global option
  944. global gesamter_inhalt
  945. global is_ne_mp3
  946. global mp3_abspiel
  947. global mp3_ordner_liste
  948. global angewaehlter_index
  949. global unterordner
  950. soll_print = 0
  951. unterordner_name = ""
  952. temp = ""
  953.  
  954. if ansicht == 1:
  955.  
  956. hintergrund = pygame.image.load(hintergrundbild).convert_alpha()
  957. screen.blit(hintergrund, pygame.rect.Rect(0,0,bildschirmgroesse[0],bildschirmgroesse[1]))
  958.  
  959. loadbild(extras, extra_groesse, extra_position)
  960.  
  961. if soll_print == 1:
  962. print "in -def bildaufbau():- :"
  963. # print ("mp3ornder =", mp3ordner)
  964.  
  965.  
  966. if option == 0: # erster einmaliger durchlauf um den inhalt des ersten Ordners einzulesen
  967. mp3_ordner_liste = lese_ein(mp3ordner)
  968. if soll_print == 1:
  969. print "in -def bildaufbau():-"
  970. print "Elemente der -mp3_ordner_liste-:", len(mp3_ordner_liste)
  971. pygame.mixer.music.set_volume(krach)
  972. option = 2
  973. if option == 1:
  974.  
  975. option = 2
  976. if option == 2:
  977. unterordner = (mp3_ordner_liste[angewaehlter_index].count("/")) - (mp3ordner.count("/"))
  978. if soll_print == 1:
  979. print "gerade im", unterordner, "-ten unterordner"
  980. print "in -def bildaufbau():- option 2 gewaehlt; Inhalt der uebergebenen mp3_ordner_liste:", mp3_ordner_liste
  981. if mp3_ordner_liste[angewaehlter_index] [len(mp3_ordner_liste[angewaehlter_index])-3:] == "mp3":
  982. if soll_print == 1:
  983. print "is ne mp3"
  984. is_ne_mp3 = 1
  985. mp3option(mp3_ordner_liste[angewaehlter_index])
  986. else:
  987. if soll_print == 1:
  988. print "ist ein Ordner"
  989. is_ne_mp3 = 0
  990. ordneroption(mp3_ordner_liste[angewaehlter_index]) # Merke: Jeder Ordner hat ein ihm zugehoeriges Bild
  991. if mp3_abspiel == 0:
  992. if soll_print == 1:
  993. print "in -def bildaufbau():-, in -if mp3_abspiel == 0:-, Variable mp3_abspiel:", mp3_abspiel
  994. hoch_runter_pfeile()
  995. else:
  996. if soll_print == 1:
  997. print "in -def bildaufbau():-, in -if mp3_abspiel == 1:-, Variable mp3_abspiel:", mp3_abspiel
  998. mp3_abspielbutton()
  999. if soll_print == 1:
  1000. print "angewaehlt_index :", angewaehlter_index
  1001. print "angewaehlt_index , Name:", mp3_ordner_liste[angewaehlter_index]
  1002. if unterordner > 0:
  1003. ordner_zureuckbildchen()
  1004.  
  1005. if (krach < 0.9) & (mp3anlauf == 1):
  1006. loadbild(lauter_bild, bilder_rechts, lauter_positon)
  1007. if (krach > 0.1) & (mp3anlauf == 1):
  1008. loadbild(leiser_bild, bilder_rechts, leiser_position)
  1009.  
  1010. if soll_print == 1:
  1011. print "in def bildaufbau(): "
  1012. print "mp3_ordner_liste[angewaehlter_index]", mp3_ordner_liste[angewaehlter_index]
  1013.  
  1014.  
  1015.  
  1016. temp_name1 = mp3_ordner_liste[angewaehlter_index][:mp3_ordner_liste[angewaehlter_index].rindex("/")]
  1017. temp_name2 = temp_name1[:temp_name1.rindex("/")] + "/"
  1018. temp_name3 = mp3_ordner_liste[angewaehlter_index][mp3_ordner_liste[angewaehlter_index].rindex("/") + 1:-4]
  1019.  
  1020. text1 = (str(angewaehlter_index + 1)) + ("/") + str(len(mp3_ordner_liste))
  1021. text2 = (str(mp3_ordner_liste[angewaehlter_index][mp3_ordner_liste[angewaehlter_index].rindex("/") + 1:-4]))
  1022. erstelle_text(text1, textanzeige[0], textanzeige[1])
  1023. erstelle_text(text2, textanzeige[0] + 50, textanzeige[1])
  1024.  
  1025. if ansicht == 2:
  1026.  
  1027. hintergrund = pygame.image.load(hintergrundbild2).convert_alpha()
  1028. screen.blit(hintergrund, pygame.rect.Rect(0,0,bildschirmgroesse[0],bildschirmgroesse[1]))
  1029.  
  1030. loadbild(abspiel_meneu1, abspiel_menue_groesse, abspiel_meneu1_position)
  1031. loadbild(abspiel_meneu2, abspiel_menue_groesse, abspiel_meneu2_position)
  1032. loadbild(abspiel_menue3, abspiel_menue_groesse, abspiel_meneu3_position)
  1033. if beenden_menue == 2:
  1034. loadbild(haeckchen, haeckchen_groesse, haeckchen_position1)
  1035. if beenden_menue == 3:
  1036. loadbild(haeckchen, haeckchen_groesse, haeckchen_position2)
  1037. if ordner_durchspielen == 1:
  1038. loadbild(haeckchen, haeckchen_groesse, haeckchen_position3)
  1039. loadbild(Zurueck, extra_groesse, extra_position)
  1040. loadbild(beenden_bild, shutdownicon, beenden_position)
  1041.  
  1042. if ansicht == 3:
  1043.  
  1044. hintergrund = pygame.image.load(hintergrundbild3).convert_alpha()
  1045. screen.blit(hintergrund, pygame.rect.Rect(0,0,bildschirmgroesse[0],bildschirmgroesse[1]))
  1046.  
  1047. zeit_var1 = "{0:02}".format(zeit_var)
  1048. if soll_print == 1:
  1049. print "zeit_var=", zeit_var ," zeit_var1=", zeit_var1
  1050. loadbild(sanduhr_icon, sanduhr_groesse, sanduhr_position)
  1051. if (zeit_var + zeit_schritt) < zeit_max:
  1052. loadbild(pfeil_hoch, pfeil_groesse, zeit_hoch_pfeil_position)
  1053. loadbild(pfeil_runter, pfeil_groesse, zeit_runter_pfeil_position)
  1054. loadbild(zahlenbutton, zahlenbutton_groesse, zahlenbutton_position)
  1055. loadbild(bilderordner+zeit_var1[0]+".png", zahlengroesse_2, zahlenbutton_zahl1_pos)
  1056. loadbild(bilderordner+zeit_var1[1]+".png", zahlengroesse_2, zahlenbutton_zahl2_pos)
  1057. loadbild(Zurueck, extra_groesse, extra_position)
  1058. loadbild(beenden_bild, shutdownicon, beenden_position)
  1059.  
  1060.  
  1061. pygame.display.flip()
  1062.  
  1063. #----------------------------------------------------------------------------------------------------------------------------------------------
  1064.  
  1065. while schleife:
  1066. for event in pygame.event.get():
  1067. if event.type == pygame.QUIT:
  1068. pygame.quit()
  1069. if event.type == pygame.KEYDOWN:
  1070. if event.key == pygame.K_ESCAPE:
  1071. pygame.quit();
  1072. sys.exit(0);
  1073. schleife = False
  1074. # Collidpiont abfrage
  1075. if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
  1076. pos = (pygame.mouse.get_pos() [0], pygame.mouse.get_pos() [1])
  1077. on_touch()
  1078.  
  1079. if beenden_menue == 1 or (ordner_durchspielen == 1): # standart die Mp3 endet und eine neue kann gestartet werden
  1080. if event.type == MP3_End:
  1081. if ordner_durchspielen == 0:
  1082. stop_funktion()
  1083. mp3_abspiel = 0
  1084. bildaufbau()
  1085. if ordner_durchspielen == 1:
  1086. naechste_mp3()
  1087.  
  1088. if beenden_menue == 2: # nach ablauf eingestellter zeit faehrt pi unter oder Pygamefenter wird geschlossen... timer wird angezeigt
  1089. screen.fill((0,0,0,0))
  1090. total_seconds = frame_count // frame_rate
  1091. minutes = total_seconds // 60
  1092. seconds = total_seconds % 60
  1093. output_string = "{0:02}:{1:02}".format(minutes, seconds) # {position0 : mit "0" auffuellen, 2 Stellen lassen}:{position1 : mit "0" auffuellen, 2 Stellen lassen}
  1094. # erstelle_text(str(output_string), extra_position[0], 250)
  1095. loadbild(bilderordner+output_string[0]+".png", zahlengroesse, zeit_runter_pos0)
  1096. loadbild(bilderordner+output_string[1]+".png", zahlengroesse, zeit_runter_pos1)
  1097. loadbild(doppelpunkt, zahlengroesse, zeit_runter_pos2)
  1098. loadbild(bilderordner+output_string[3]+".png", zahlengroesse, zeit_runter_pos3)
  1099. loadbild(bilderordner+output_string[4]+".png", zahlengroesse, zeit_runter_pos4)
  1100. # total_seconds = start_time - 1 - (frame_count // frame_rate)
  1101. total_seconds = start_time - 1 - (frame_count // frame_rate)
  1102. if total_seconds < 0:
  1103. total_seconds = 0
  1104. stop_funktion()
  1105. beenden_funktion()
  1106. minutes = total_seconds // 60
  1107. seconds = total_seconds % 60
  1108. output_string = "{0:02}:{1:02}".format(minutes, seconds)
  1109. loadbild(bilderordner+output_string[0]+".png", zahlengroesse, zeit_hoch_pos0)
  1110. loadbild(bilderordner+output_string[1]+".png", zahlengroesse, zeit_hoch_pos1)
  1111. loadbild(doppelpunkt, zahlengroesse, zeit_hoch_pos2)
  1112. loadbild(bilderordner+output_string[3]+".png", zahlengroesse, zeit_hoch_pos3)
  1113. loadbild(bilderordner+output_string[4]+".png", zahlengroesse, zeit_hoch_pos4)
  1114. # erstelle_text(str(output_string), extra_position[0], 280)
  1115. frame_count += 1
  1116. clock.tick(frame_rate)
  1117.  
  1118.  
  1119. if beenden_menue == 3: # wenn die Mp3 endet wird der Pi runtergefahren oder das Pygamefenster geschlossen
  1120. if event.type == MP3_End:
  1121. stop_funktion()
  1122. beenden_funktion()
  1123.  
  1124. if option == 0:
  1125. bildaufbau()
  1126. # if fehlersuche == 1:
  1127. # mouse = pygame.mouse.get_pos()
  1128. # screen.fill((0,0,0,0))
  1129. # erstelle_text(str(mouse), 0, 0)
  1130.  
  1131. # frame_count += 1
  1132. # clock.tick(frame_rate)
  1133.  
  1134.  
  1135. pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement