Developing a fullscreen "media player" on linux - linux

I'm a Windows developer and I need to develop a Linux application.
The goal is to have a fullscreen application being able to display different media types (images, videos, flash). There might be multiple media files being displayed at the same time on the screen (if the screen is split in multiple zones).
Can someone point me in the right direction as to what is the most appropriate technology/tools/frameworks to use?
I have experience with C#, C++ and Objective C.
Thanks,
Pyt

You could look into MPlayer's libraries, that are extensively used by several Linux applications as a backend.
Best of all, its cross OS and of high quality.

Qt for the gui
Probably C++ for the code

You could look at FFMPEG libraries (http://ffmpeg.org/index.html)
QtMediaHub (http://qt-project.org/wiki/QtMediaHub) has some useful (and pretty stable) classes and sample implementations.

Related

Are there any high level general purpose graphics libraries for julia?

Julia libraries like 'GLAbstraction' are too low level for me. I need something like the 'Canvas API' for JavaScript in browsers. Are there any?
This is not an exhaustive list. I put the first several links I was aware of. I would start with QML.jl if you can.
Related discussions:
https://discourse.julialang.org/t/julia-for-gui-app/416
https://discourse.julialang.org/c/domain/viz/17
Desktop Graphics Engines aka Desktop GUIs
If you search through the JuliaCon Videos from past years, you can find talks and walkthroughs for these packages.
I have a background in Qt and the Qt Libraries, and it is very general purpose. QML is very friendly if you have a javascript background. The KDE desktop in Linux is built around Qt. Many desktop apps in general include Qt dlls, and use it as its backbone.
https://github.com/barche/QML.jl
And here is a youtube link or two about it:
https://www.youtube.com/watch?v=AddbHe05yRg
https://github.com/barche/juliacon2020-qml - example code for the most recent talk on it
https://www.youtube.com/watch?v=4Bmp0I731Ak
Gtk has been around a long time and you can see it in use in GIMP and Gnome desktop in Linux.
https://github.com/JuliaGraphics/Gtk.jl
The examples for Redux are mentioned in the PackageCompiler.jl video done recently. These are more or less the React Native style apps, shipping a chromium browser and rendering a react environment as a desktop app.
https://github.com/Gnimuc/Redux.jl
Interactive Plotting Libraries
There is a list of them here in the Plots.jl interface. Plotting in Julia is a pretty big rabbit hole, and there are tons of options to look into. Jupyter notebooks and the like with interactivity layered on them blurs the line between what is a GUI and what is just a plot.
http://docs.juliaplots.org/latest/ecosystem/
https://juliaobserver.com/categories/Graphical%20Plotting
https://github.com/JuliaPlots/Makie.jl
https://github.com/JuliaGL/GLVisualize.jl
https://github.com/JuliaGizmos/Interact.jl
https://github.com/plotly/Dash.jl
Web Frameworks
https://genieframework.com/
https://github.com/JuliaGizmos/Interact.jl
https://github.com/plotly/Dash.jl

How does one use the Chromium Embedded Framework from GtkSharp?

I'm a Microsoft stack developer most familiar with Windows Forms and WPF, but have a need to develop a Linux desktop application that can display some web apps in a modern browser that offers very recent HTML 5, CSS 3, SVG, etc.
I'm thinking GtkSharp running on top of Mono is probably the replacement for WinForms/WPF running on top of .NET which will best leverage what I already know. As for the embedded browser control, I have other requirements strongly advocating CEF over any other solution (although I'm still open to strong suggestions to do otherwise).
Anyone have experience with any of this?
Try looking at CefGlue, it has a CefGlue.Demo.GtkSharp project which would indicate it's possible.
https://bitbucket.org/xilium/xilium.cefglue/
https://bitbucket.org/xilium/xilium.cefglue/issues/108/linux-support
Personally I've never used CefGlue so I cannot say more than I've seen in passing.

Creating tweaks for Linux

I want to create widgets/gadgets and/or customize app themes like Plank themes, WingPanel themes, Files (File Manager) themes, etc for Elementary OS - a Linux distro. But I don't know where to begin. Basically, I want to create "tweaks" and make them available for others to download and use and share.
I know C, C++, C# and Vala (Vala = main programming language used to create software for Elementary OS).
How do we create widgets/gadgets/tweaks for Linux/Ubuntu/Elementary OS? Where do I begin?
Elementary OS has a developer site that you can use to understand their guidelines and touches on some basic topics and APIs. They should also have some links to other docs that go into further detail in certain areas. If you are looking specifically for a GUI application, then I sugggest researching GTK, QT, and Glade as you will be using one of those to help build the interface.

Porting Windows Phone game with Xamarin

I currently have a very simple memory game for Windows Phone that I would like to port over to iOS, Android and possibly Win8 using Xamarin tools.
I would like to centralize my business logic in one assembly and simply create the UI for each platform.
For the most part, the code is simple C#, but I do make use of Bitmaps to show the cards in the game. However, from what I've read, there is no standard support across the different platforms for using Bitmaps.
What would be a recommended approach to this problem?
I'm thinking I have to use something like MonoGame, but feel that is overkill for what I want to do.
You say your code is in C#. As far as I know Xamarin is the only way to get C# code to run on Android and iOS. Xamarin has a free starter edition that you might be able to use but your app will be size limited. Once you hit the size limit you'll need to pay for a license.
After you've decided to pay for a license there are no other costs involved if you want to use MonoGame for the port. If your game is already using XNA or you have some XNA experience I recommend using MonoGame. MonoGame is a port of XNA and is designed for making games, so many game related tasks are easier.
The alternative is to build your game as an app using the standard app building API. This is possible but I can't see any advantages doing it this way unless you are trying to save money by using Xamarin's free edition. If you plan to make more games in the future, you'd be better off biting the bullet and learning MonoGame.
Using bitmaps with MonoGame shouldn't be a problem. Although, you may need to convert them to PNG's first.
Centralizing the business logic in one assembly is sort of possible using Portable Class Libraries but due to the limitations of PCL's it's often easier to use file sharing. Basically you have a soft link to the files in each project. Updating the files updates them in all projects at the same time, but adding new files requires you to add them to each project individually. It's a little bit of a maintenance pain, but not much.
For sure, as a starting point you should separate UI and logic.
To reach this I highly recommend you to make console version of game. Using console it is possible only send commands with parameters to application. No mouse or real-time keyboards usages. All UI-related tasks will be left. Only business logic and commands to use will remain.
Then, you should try MonoGame. It's reliable enough for 2D games. Even more, If IL-code is not too much, it's free for iOS and Android!
Other way is... Unity 3D. Using that engine is depends of code you wrote. In some cases it's possible to use that game engine with shared business logic. Thanks to new Unity 3D policy, indie game developers could make and deploy their games for free.
In short, plan is:
Implement core functionality (with console I/O);
Then, choose engine and implement UI for target platforms.

When using EFL for an embedded UI, should we use Elementary or Edje?

We are starting with an embedded development using the Enlightenment Foundation Libraries. We are developing a "full" screen application, so a window manager is not required and our Linux system will eventually run Tizen OS.
The question is, EFL provides Elementary and Edje.
Should we use Elementary widgets or Edje scripts?
Can you use Elementary widgets in Edje scripts? I have heard mention of this but have not seen any documentation or examples.
EFL provides a no. of libraries for different GUI tasks. Generally based on requirements you need to opt for a particular lib. elementary provides set of widgets already created for user. So go for it if you can reuse. But do implement it with edje as edje is helpful for defining layouts and will help you when you need to scale up or down your graphics app. you can refer following link for detail api documentation:
http://web.enlightenment.org/p.php?p=docs&l=en
Use elementary first. You can do most of things and it supports a lot of features such as theme, focus, container, access, auto deletion, scale, mirror, translate, orientation set and etc.
If you really want to use edje(edc script) then use elm_layout and set edj file.
Thanks.

Resources