GTK Media Viewer Application

  • Status Closed
  • Budget N/A
  • Total Bids 6

Project Description

I need a Gtk application for Ubuntu (not only application but also source codes)

Basically, application will read xml files and json codes, list the media elements and display them in a multi-purpose viewer. There will be also a canvas for drawing.

Media Elements:

Image (jpg, bmp, png), Video (mp4), Audio (mp3), Webpage, Presentation (ppt), Info (Text), PDF

XML Structure

(Only Source of “Info” is text, all other Source values are Urls of contents)

JSON's structure is similar to xml

{"result":"Successful","message":"Request is successful","response":{"Elements":[{"Type":"..","Title":"..","Thumb":"..","Url ":".." }]}}


Application window will be splitted into to 3 tabs horizontally: List, Viewer, Canvas. (Lets say if width of window is 1920, then width of each tab will be 640px)

When application is opened, it will read a xml file and json codes from two urls, parse them and list the media elements as icons in List tab. Display thumbnail image, title and type of each media element as Icon.

I will drag a media element icon and drop into Viewer tab. Viewer is a multi-purpose viewer. According to the content of the Viewer, corresponding Controller Bar will show up.

If element Type is Image, Viewer will display that image

Image Controller Bar: Zoom In/Out, Rotate +90/-90 (These functionalities will not change original image file, it will just change the display)

If element Type is Video, then Viewer will play that video

Media Controller Bar: Play/Pause/Stop buttons, slider, current position and total duration info.

If element Type is Audio, same as video, Viewer will play the audio and show Media Controller Bar,

In addition to this, Viewer will show a default background image (so Viewer area will not be blank).

If element Type WebPage, then Viewer will go to that website.

Web Controller Bar: Address Bar and Go button. (I also will be able to write an url in address bar and click GO button to go to that website)

If element Type is PDF, then Viewer will open PDF file.

PDF Controller Bar: Next page, Previous page, Current Page no / Total Page No. , Go to page (with textbox), Zoom In, Zoom Out.

If element Type is Presentation, Viewer will show slides

Slide Controller Bar: Next/Previous slide, Current Slide no / Total Slide No. , Go to slide (with textbox)

If element Type is Info, then Viewer will show content of news. There will be no controller for Info

For Canvas Tab;

It will be like a paint application.

I need Pen, Eraser, (auto shapes: ) Line, Rectangle, Ellipse, 8 predefined color, 3 predefined line thickness options. There will be no brush or color filling.

I should be able to drag an Image element from List tab (only Image element) and drop into the canvas. Like PowerPoint, I will be able to select and move/rotate/resize/remove an Image on Canvas. Do not use any keyboard command. For instance; when I selec t an Image, borders and rotate/delete anchors should appear.

Drawings and Images on canvas are independet. I can draw on images with pen, but when i move that image, only image moves, drawings stays in the same pixels.

There will be next phases for this project (at the end of this year)

For now, I need you to create list objects and hold the following data in them in background;

- List of images on canvas, List of lines/rectangeles/ellipses, List of strokes of pen.

- I should be able to get a color of a pixel on canvas.

I will need these data in next phases

All codes must be open source and free for all purposes of use including academic, commerical, individual use etc.

I will share original xml file and json with you for tests

I know there are free media viewers like gstreamer etc.. So it would not be so difficult for a junior/senior gtk programmer

Get free quotes for a project like this
Skills Required

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online