Testing #783
closedVerify inotify is working with VideoFE
100%
Description
I don't remember testing that the inotify support actually works. I want to make sure that adding a usb stick causes the display to update. This is especially important for the player-only system that will launch directly into the VideoFE app and have to update it's display once SMB gets running and finds network mounts.
Updated by Hammel over 1 year ago
- Priority changed from Urgent to Immediate
- Target version changed from 2.0 - Harkonnen to 3.0 - Corrino
- Severity changed from 02 - High to 05 - Very Low
Updated by Hammel about 1 year ago
- Severity changed from 05 - Very Low to 01 - Critical
Updated by Hammel about 1 year ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
I need to copy some videos to USB sticks to try this. I have a big disk with 1TB+ videos but that doesn't work well with VideoFE (see RM #522). So I need some smaller sets of videos to test with.
I ordered some smaller sticks to break up the videos for camping, but I need to use some 32GB sticks I have for testing this issue for now.
Updated by Hammel about 1 year ago
- % Done changed from 10 to 30
Looks like the watcher catches the usb stick insert and updates the db but the UI is not automatically updated.
[ watcher.c:0141] INFO DB change detected. [ db.c:0681] INFO Looking for movie directories to scan. [ db.c:0225] INFO Find command: find . -type d -name movies [ db.c:0236] INFO Clearing directory list. [ db.c:0242] INFO Building directory list. [ db.c:0253] INFO Done finding directories to scan. [ db.c:0683] INFO Looking for TV directories to scan. [ db.c:0225] INFO Find command: find . -type d -name tv [ db.c:0236] INFO Clearing directory list. [ db.c:0242] INFO Building directory list. [ db.c:0253] INFO Done finding directories to scan. [ db.c:0706] INFO Calling readDB on movieDirList [ db.c:0708] INFO Calling readDB on episodeDirList [ db.c:0715] INFO Calling genVideo on movieList [ db.c:0717] INFO Calling genVideo on episodeList
Looks like all that is missing is a call to updateDisplay() from watcherProcessor(). I think that should do it.
Updated by Hammel about 1 year ago
- % Done changed from 30 to 60
watcher.c is updated and ready for testing on hardware.
Updated by Hammel about 1 year ago
This didn't actually work. I'm not sure what inotify() caught in the above example, but it wasn't a mounted directory under /media/usb or /media/smb because inotify() is only watching /media and it doesn't watch directories recursively.
So I need to change the code to watch both /media/usb and /media/smb. Also, /media/smb may not work as there are notes about possible problems with network drives. I'll have to test to see if that works.
Updated by Hammel about 1 year ago
- % Done changed from 60 to 80
Implemented, but needs testing on hardware.
Updated by Hammel about 1 year ago
- Status changed from In Progress to Closed
- % Done changed from 80 to 100
Okay, it wasn't quite that easy. While calling updateDisplay was necessary, it had to be done in the GTK+ main thread. So instead of calling it directly, I needed to call it from a g_timeout_add() callback function, and then only once.
This has been implemented and tested on hardware. I've tested plugging in a USB stick and unplugging one, and repeated this a few times. Seems pretty stable.
Code committed and pushed.
Closing issue.