Skip to content
Open
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,30 @@ __pycache__/*
modules/__pycache__/*
waveshare_lib/build/*
waveshare_lib/dist/*
custom-conf.conf
debug.log
mbridge-changelog.md
test_app.py
test_frame.py
.idea/.gitignore
.idea/misc.xml
.idea/modules.xml
.idea/vcs.xml
.idea/vsmp-plus.iml
.idea/inspectionProfiles/profiles_settings.xml
.idea/inspectionProfiles/Project_Default.xml
web/static/images/original-splash.jpg
.idea/.gitignore
.idea/misc.xml
.idea/modules.xml
.idea/vcs.xml
.idea/vsmp-plus.iml
.idea/inspectionProfiles/profiles_settings.xml
.idea/inspectionProfiles/Project_Default.xml
mbridge-changelog.md
custom-conf.conf
omni-epd.ini
test_app.py
web/static/images/original-splash.jpg
web/static/images/splash.png
test_frame.py
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,30 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## 2025-07-02

### Fixed
- Pos now reset when starting a new file

### Added
- Image enhancement using PIL contrast & brightness settings for better
- Full screen images without black bars
- Startup messages now appear on RHS of screen, image on LHS
- QR Code on RHS of startup screen for config URL

## 2025-07-02

### Fixed
- Skipping blank frames did not advance. Changed logic of main loop in update_display and use new function to get ffmpeg to find the next non-black frame.

## 2025-05-31

### Fixed

- Seek fails due to config variable not being set (moved db read of config to beginning of execute_action in webapp.py
- Fix to seek commands being ignored (caused by data being over-written by update_display())
- Fix hour value in seek tooltip

## 2025-05-28

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion modules/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def frames_to_seconds(frames, fps):


def seconds_to_frames(seconds, fps):
return int(seconds) * fps
return int(seconds * fps)


# Check if a file is a video
Expand Down
8 changes: 4 additions & 4 deletions modules/webapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,24 +74,24 @@ def save_configuration():
@app.route('/api/control/<action>', methods=['POST'])
def execute_action(action):
result = {'success': True, 'message': '', 'action': action}
config = utils.get_configuration(db)

# get the action
if(action in ['pause', 'resume']):
# store the new value
utils.write_db(db, utils.DB_PLAYER_STATUS, {'running': action == 'resume'}) # eval to True/False
result['message'] = f"Action {action} executed"
elif(action in ['next', 'prev']):
config = utils.get_configuration(db)

if(config['mode'] == 'dir'):
nextFile = utils.read_db(db, utils.DB_LAST_PLAYED_FILE)
skip_num = {'num': 0}

# use the info parser to find the next or previous file
if(config['media'] == 'video'):
info = VideoInfo(utils.get_configuration(db))
info = VideoInfo(config)
else:
info = ImageInfo(utils.get_configuration(db))
info = ImageInfo(config)

# load how many skips are queued
skip_num = utils.read_db(db, utils.DB_IMAGE_SKIP)
Expand Down Expand Up @@ -133,7 +133,7 @@ def execute_action(action):

if('file' in nextVideo):
# see to this value
info = VideoInfo(utils.get_configuration(db))
info = VideoInfo(config)
nextVideo = info.seek_video(nextVideo, data['amount'])

result['message'] = f"Seeking to {data['amount']:.2f} percent on next update"
Expand Down
8 changes: 8 additions & 0 deletions omni-epd.ini
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
[omni_epd.mock]
mode=color
file=tmp/screenshot.png

[Display]
#dither=simple2d
dither=FloydSteinberg
#dither=FalseFloydSteinberg
dither_strength=1.0
dither_serpentine=True

Loading