Notices


Reply
Thread Tools
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#1
Troll Bridge (TRaveller's OLympus Bridge) is a PoC application for controlling an Olympus WiFi enabled OM-D/PEN/Air camera.

Thanks to Nekron for the Go-QML Sailfish OS port.

Warning: Test on your own responsibility.

Packages:
https://openrepos.net/content/bundyo/troll-bridge

Source:
https://github.com/bundyo/trollbridge

Warning: The app was built using Go 1.6, but with the current Nekron port it will crash on engine.AddImageProvider. To get it working, use the unsafe_ref.patch in the patches folder to patch your Go 1.6 package. Didn't test building it with Go !.5.

Pull requests are welcome.
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.

Last edited by Bundyo; 2016-05-20 at 20:55.
 

The Following 6 Users Say Thank You to Bundyo For This Useful Post:
Posts: 702 | Thanked: 2,059 times | Joined on Feb 2011 @ UK
#2
Working nicely with my OM-D E-M10 Mk1.
 

The Following User Says Thank You to aegis For This Useful Post:
seiichiro0185's Avatar
Posts: 270 | Thanked: 610 times | Joined on Nov 2007 @ Leipzig/Germany
#3
I also have an omd e-m10, app works as expected (Tablet and Phone). It crashed once on the first attempt to download the pictures, but I couldn't reproduce this, second attempt worked nicely.
__________________
N800 -> N810 -> N900 -> N9 -> Jolla & TOHKBD -> Jolla C -> Xperia X -> XA2 Plus Dual Sim

http://www.seiichiro0185.org
 

The Following User Says Thank You to seiichiro0185 For This Useful Post:
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#4
Hmm, I have an existential issue... What do you think, should I keep using only one folder (currently /home/nemo/Pictures/Olympus/, probably configurable in the future) or should I keep the pictures in different folders, based on the camera model?

I have both E-M5 Mark II and an Air and I know that some people do have several cameras they use for different things (like E-M1 for phase focus for instance) and several folders does seem like the obvious choice.
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.
 
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#5
Version 0.1.1 uploaded.

Did it with separate folders for every camera model, you may want to move your pictures there after the next download (only for detection).

Olympus Air is now part of the family (no remote shutter for now).
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.
 
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#6
Added sources and the Go 1.6 patch.

Btw, I have an issue with the SilicaGridView - the model changes underneath and the changes propagate to the QML, but sometimes the QML elements inside the delegate don't change their visibility until you scroll out of the view and then return. The GridView forceLayout method doesn't seem to help much and seems like a rendering bug. Any ideas?
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.
 
marxian's Avatar
Posts: 2,448 | Thanked: 9,523 times | Joined on Aug 2010 @ Wigan, UK
#7
Originally Posted by Bundyo View Post
Added sources and the Go 1.6 patch.

Btw, I have an issue with the SilicaGridView - the model changes underneath and the changes propagate to the QML, but sometimes the QML elements inside the delegate don't change their visibility until you scroll out of the view and then return. The GridView forceLayout method doesn't seem to help much and seems like a rendering bug. Any ideas?
Your data model is not updated when the image status changes, so these status changes will not be reflected in the delegate, and you are using a function call that depends on the index only, so the function will only be re-evaluated when the index changes.

To fix this, you could use either QAbstractItemModel or QML ListModel and either have the bridge update the model when the image status changes, or use signal/slot connections, e.g:

Code:
ListModel {
    id: model
}

Connections {
    target: bridge
    onImageStatusChanged: model.setProperty(index, "status", status) // 'index' and 'status' (e.g 'Downloading' or 'Downloaded') are signal parameters
}
EDIT: Another possible solution is to use the array of images as the model, then you could bind to the 'dowloading' property via 'modelData', e.g:

Code:
....
model: bridge.fileList
delegate: Item {
    someProperty: modelData.downloading
    otherProperty: modelData.downloaded
}
__________________
'Men of high position are allowed, by a special act of grace, to accomodate their reasoning to the answer they need. Logic is only required in those of lesser rank.' - J K Galbraith

My website

GitHub

Last edited by marxian; 2016-05-09 at 13:43.
 

The Following User Says Thank You to marxian For This Useful Post:
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#8
Originally Posted by marxian View Post
Your data model is not updated when the image status changes, so these status changes will not be reflected in the delegate, and you are using a function call that depends on the index only, so the function will only be re-evaluated when the index changes.

To fix this, you could use either QAbstractItemModel or QML ListModel and either have the bridge update the model when the image status changes, or use signal/slot connections, e.g:

Code:
ListModel {
    id: model
}

Connections {
    target: bridge
    onImageStatusChanged: model.setProperty(index, "status", status) // 'index' and 'status' (e.g 'Downloading' or 'Downloaded') are signal parameters
}
EDIT: Another possible solution is to use the array of images as the model, then you could bind to the 'dowloading' property via 'modelData', e.g:

Code:
....
model: bridge.fileList
delegate: Item {
    someProperty: modelData.downloading
    otherProperty: modelData.downloaded
}
Unfortunately Go-QML doesn't support array model binding I'll try the rest.
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.
 
Bundyo's Avatar
Posts: 4,708 | Thanked: 4,649 times | Joined on Oct 2007 @ Bulgaria
#9
Version 0.1.2 is up, bringing RAW and refresh fixes.

Very convoluted refresh fix though... Using ListModel, but since for some reason the append call can't send a struct, I had to do it through property events
__________________
Technically, there are three determinate states the cat could be in: Alive, Dead, and Bloody Furious.
 

The Following User Says Thank You to Bundyo For This Useful Post:
Reply

Thread Tools

 
Forum Jump


All times are GMT. The time now is 18:00.