187 lines
3.8 KiB
Python
Executable File
187 lines
3.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
global cpt
|
|
FirstRun = 1
|
|
cpt = 0
|
|
import configparser
|
|
from collections import Counter
|
|
from tkinter import *
|
|
from tkinter import ttk
|
|
from PIL import Image, ImageTk
|
|
import PIL.Image
|
|
import PIL.ImageTk
|
|
import sys
|
|
from modules.arrow import *
|
|
from modules.emulateur_display import *
|
|
import time
|
|
import os
|
|
sys.path.append( './modules/')
|
|
from arrow import *
|
|
|
|
|
|
def EnterEmu():
|
|
global cpt
|
|
runMcpt = cpt + 1
|
|
if runMcpt > EmuCpt:
|
|
runMcpt = 0
|
|
print("Emu : " + str(res[runMcpt]))
|
|
|
|
def ViewEmu(cL,xL,yL,cM,xM,yM,cR,xR,yR):
|
|
NfL="./data/emu/media/" + res[cL] + ".png"
|
|
NfM="./data/emu/media/" + res[cM] + ".png"
|
|
NfR="./data/emu/media/" + res[cR] + ".png"
|
|
|
|
PNfL = PhotoImage(file = NfL)
|
|
LabelPNfL = Label(arkadeus, image=PNfL)
|
|
LabelPNfL.PNfL = PNfL
|
|
|
|
PNfM = PhotoImage(file = NfM)
|
|
LabelPNfM = Label(arkadeus, image=PNfM)
|
|
LabelPNfM.PNfM = PNfM
|
|
|
|
PNfR = PhotoImage(file = NfR)
|
|
LabelPNfR = Label(arkadeus, image=PNfR)
|
|
LabelPNfR.PNfR = PNfR
|
|
|
|
Cnv.pack(fill = "both", expand = True)
|
|
for IdCanvas in Cnv.find_all():
|
|
if IdCanvas != 1:
|
|
Cnv.delete(IdCanvas)
|
|
|
|
Cnv.create_image(xL, yL, image=PNfL)
|
|
Cnv.create_image(xM, yM, image=PNfM)
|
|
Cnv.create_image(xR, yR, image=PNfR)
|
|
print("Curent Emu : " + str(res[cM]))
|
|
|
|
|
|
#
|
|
#Cnv.pack(fill = "both", expand = True)
|
|
|
|
|
|
|
|
def leftKey():
|
|
global cpt
|
|
cpt = cpt - 1
|
|
if cpt < 0:
|
|
cpt = EmuCpt
|
|
Lcpt = cpt
|
|
Mcpt = cpt + 1
|
|
Rcpt = cpt + 2
|
|
if Mcpt > EmuCpt:
|
|
Mcpt = 0
|
|
Rcpt = 1
|
|
if Rcpt > EmuCpt:
|
|
Rcpt = 0
|
|
|
|
ViewEmu(Lcpt,LeftSquareX, LeftSquareY,Mcpt,MiddleSquareX, MiddleSquareY,Rcpt,RightSquareX, RightSquareY)
|
|
|
|
def rightKey():
|
|
global cpt
|
|
cpt = cpt + 1
|
|
if cpt > EmuCpt:
|
|
cpt = 0
|
|
Lcpt = cpt
|
|
Mcpt = cpt + 1
|
|
Rcpt = cpt + 2
|
|
if Mcpt > EmuCpt:
|
|
Mcpt = 0
|
|
Rcpt = 1
|
|
if Rcpt > EmuCpt:
|
|
Rcpt = 0
|
|
|
|
|
|
ViewEmu(Lcpt,LeftSquareX, LeftSquareY,Mcpt,MiddleSquareX, MiddleSquareY,Rcpt,RightSquareX, RightSquareY)
|
|
|
|
def Escape(event):
|
|
print("ESC key pressed")
|
|
arkadeus.quit()
|
|
|
|
|
|
arkadeus= Tk()
|
|
|
|
global res
|
|
res = []
|
|
|
|
dir_path = r'./data/emu/bin/'
|
|
|
|
# Iterate directory
|
|
for path in os.listdir(dir_path):
|
|
if os.path.isfile(os.path.join(dir_path, path)):
|
|
FileName=os.path.splitext(path)[0]
|
|
res.append(FileName)
|
|
print("DEBUG : " + FileName)
|
|
|
|
cnt = Counter(res)
|
|
global EmuCpt
|
|
EmuCpt=len(cnt) - 1
|
|
print(" Nmbre emulateur : " + str(EmuCpt))
|
|
|
|
|
|
config_obj = configparser.ConfigParser()
|
|
config_obj.read("./conf/config.ini")
|
|
Media = config_obj["Media"]
|
|
ForceRes = Media["force_resolution"]
|
|
Background = Media["background"]
|
|
Square = int(Media["square_size"])
|
|
|
|
config_rom = configparser.ConfigParser()
|
|
config_rom.read("./conf/games.ini")
|
|
|
|
Emulateur = config_rom["emulateurs"]
|
|
|
|
print(Emulateur["EmulateurList"])
|
|
IdEmu(Emulateur["EmulateurList"])
|
|
|
|
|
|
arkadeus.attributes('-fullscreen', True)
|
|
arkadeus.title("Arkadeus")
|
|
|
|
|
|
|
|
if ForceRes == "y":
|
|
Xsize = int(Media["x_resolution"])
|
|
Ysize = int(Media["y_resolution"])
|
|
else:
|
|
Xsize = arkadeus.winfo_screenwidth()
|
|
Ysize = arkadeus.winfo_screenheight()
|
|
|
|
|
|
print("res : " + str(Xsize) + ":" + str(Ysize) )
|
|
|
|
bg = PhotoImage(file = Background)
|
|
|
|
Cnv = Canvas( arkadeus, width = Ysize , height = Xsize)
|
|
|
|
Cnv.pack(fill = "both", expand = True)
|
|
|
|
|
|
Cnv.create_image( 0, 0, image = bg, anchor = "nw")
|
|
|
|
|
|
MiddleSquareX=(Xsize/2)
|
|
MiddleSquareY=(Ysize/2)
|
|
MiddleSquareX2=MiddleSquareX + Square
|
|
MiddleSquareY2=MiddleSquareY + Square
|
|
|
|
LeftSquareX=(Xsize/3)
|
|
LeftSquareY=(Ysize/3)
|
|
|
|
LeftSquareX2=LeftSquareX + Square
|
|
LeftSquareY2=LeftSquareY + Square
|
|
|
|
RightSquareX=(Xsize*2/3)
|
|
RightSquareY=(Ysize/3)
|
|
|
|
RightSquareX2=RightSquareX + Square
|
|
RightSquareY2=RightSquareY + Square
|
|
|
|
ViewEmu(cpt,LeftSquareX, LeftSquareY,cpt+1,MiddleSquareX, MiddleSquareY,cpt+2,RightSquareX, RightSquareY)
|
|
|
|
arkadeus.bind("<Left>", lambda event: leftKey())
|
|
arkadeus.bind("<Right>", lambda event: rightKey())
|
|
arkadeus.bind("<Return>", lambda event: EnterEmu())
|
|
|
|
arkadeus.bind('<Escape>',Escape)
|
|
|
|
arkadeus.mainloop()
|