maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   [SFOS] [Announce] Troll Bridge: an Olympus camera controller (https://talk.maemo.org/showthread.php?t=96721)

Bundyo 2016-05-07 08:17

[Announce] Troll Bridge: an Olympus camera controller
 
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.

aegis 2016-05-07 15:19

Re: [Announce] Troll Bridge: an Olympus camera controller
 
Working nicely with my OM-D E-M10 Mk1.

seiichiro0185 2016-05-08 07:22

Re: [Announce] Troll Bridge: an Olympus camera controller
 
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.

Bundyo 2016-05-08 19:25

Re: [Announce] Troll Bridge: an Olympus camera controller
 
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.

Bundyo 2016-05-08 22:28

Re: [Announce] Troll Bridge: an Olympus camera controller
 
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).

Bundyo 2016-05-09 05:50

Re: [Announce] Troll Bridge: an Olympus camera controller
 
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?

marxian 2016-05-09 13:15

Re: [Announce] Troll Bridge: an Olympus camera controller
 
Quote:

Originally Posted by Bundyo (Post 1505217)
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
}


Bundyo 2016-05-10 04:31

Re: [Announce] Troll Bridge: an Olympus camera controller
 
Quote:

Originally Posted by marxian (Post 1505236)
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.

Bundyo 2016-05-12 06:36

Re: [Announce] Troll Bridge: an Olympus camera controller
 
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 :)


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

vBulletin® Version 3.8.8