Jump to content

Flying Cow


Recommended Posts

If you're looking for a Finder clone with CoverFlow-like view, take a look at this:

http://matias.securityconsultant.com.ar/FingerXP.rar (work in progress)

If you're a coder, looking for code to add a cover flow view to your apps/plugins/whatever, then continue reading.

aquasoft-separator.png

Flying Cow pretends to be a clone of Finder's Cover Flow view.

I'm not sure if it will become an .ocx control, a .dll library, an app, or all of them.

It currently previews jpegs, bmps, avis, mpegs, wmvs, etc...

The problem is I don't know how to preview each page of a .pdf, a power point presentation or a Word document. Any help or ideas in such things is greatly welcome.

Here is a preview of the app:

[s]http://www.matiasmoreno.com.ar/FlyingCow-proof-of-concept-2007-11-25.rar

Screenshot previewing a .jpg:

[s]http://www.matiasmoreno.com.ar/fc1.jpg

Screenshots previewing a video:

[s]http://www.matiasmoreno.com.ar/fc2.jpg

[s]http://www.matiasmoreno.com.ar/fc3.jpg

The video is actually there, being played (the one featuring Kylie Minogue).

Requirements:

- OpenGL

- DirectX9 (for decoding videos).

Edit

Added PDF support:

[s]http://www.matiasmoreno.com.ar/FlyingCow-proof-of-concept-2007-11-25-with-incomplete-pdf-support.rar

Seems not to render text with system (non-embedded) fonts.

Edit

Added the 14 non-required-to-be-embedded-on-pdfs fonts:

[s]http://www.matiasmoreno.com.ar/FlyingCow-proof-of-concept-2007-11-25-with-better-pdf-support.rar

Holly Cow! :P This is getting bigger and bigger, hope not to end with a 50 Mb rar...

Edit

Ok, getting closer to first release:

http://www.matiasmoreno.com.ar/FlyingCow-2...lease-tests.rar

Shows text.

Uses antialiasing (will be optional soon, as may degrade performance a lot in older cards).

I also include MusicPlayer.exe (edit MusicPlayer.ini first, or it won't work), another example using the Flying Cow engine. It searches for subfolders within the one specified in MusicPlayer.ini, for mp3s, oggs, and m4as, and shows albums by loading the corresponding folder.jpg file.

I'll try to do a task switcher with the engine, as suggested by Sranshaft.

@Sranshaft:

CubikDesktop development is temporarily suspended :( Yes, I know, blame me, but it works perfectly in my computer except for the window-between-desktops-shown-truncated thing, which I don't want to implement as far as I didn't find a way to detect frozen windows. Indeed WinExposé frozens itself when trying to screenshot a frozen window :(

Edit

Flying Cow goes GPL 3.0! ;)

Get sources at [s]http://www.matiasmoreno.com.ar/FlyingCow-sources-2007-11-28.rar http://sourceforge.net/projects/flyingcow

Link to comment
  • Replies 229
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Hi,

a dream come true. This is great news. Just tried and works great. Just a few things. If you have photos bigger in size (2Mb) it´ll slow down the scrolling and sometimes also hangs and pdftoppm.exe is running with 25% CPU in the background still. Some pdfs are shown, others not.

Hope the app comes integrated in the explorer, that would be very nice.

Link to comment
The new ver is more stable,but I got this warn when opened pdf file,thank's

Mmm... seems pdftoppm doesn't like the .pdf.

Can you test pdfinfo.exe "full path to the problematic pdf" from a command line and sending me the output? (pdfinfo is in same path than FlyingCow/Project1.exe)

New version (....-with-better-pdf-support.rar, see first post) should stop showing error message (but won't let you read the pdf, so the problem persists anyway).

Link to comment
Mmm... seems pdftoppm doesn't like the .pdf.

Can you test pdfinfo.exe "full path to the problematic pdf" from a command line and sending me the output? (pdfinfo is in same path than FlyingCow/Project1.exe)

New version (....-with-better-pdf-support.rar, see first post) should stop showing error message (but won't let you read the pdf, so the problem persists anyway).

Actually I used your latest ver and run all the exe ( pdfinfo.exe and pdftoppm.exe) stil got that warn,and I found this file "pdftppm.exe.stckdump" inside Flying Cow folder,thank's

Link to comment
Great app! What techniques you used, and which programming language (is it Delphi?). I must admitt is works great (what it'll be good to see is some anti-aliasign on borders).

Always wanted to make my own replacement for explorer - it was hard to do?

Yes, you may bet it is hard to do and to mantain :S

Yes I'm using Delphi 5 (quite old nowadays).

For OpenGL I'm using dglOpenGL:

http://wiki.delphigl.com/index.php/DGLOpenGL.pas

For GIF support I'm using TGIFImage v2.2 by Anders Melanders:

http://www.torry.net/pages.php?id=102 (scroll down, find the one by Anders)

For PNG support I'm using TPNGImage:

http://pngdelphi.sourceforge.net/

For video previewing, I'm using DSPack:

http://www.progdigy.com/modules.php?name=DSPack

I don't know what you mean by technique... structured code versus object oriented?

In such case, the program is more object oriented.

Delphi creates some classes: TApplication, TForm (window).

Flying Cow has it's own class: TFlyingCow, and a rendering thread TFlyingCowRenderThread, that's why the animation is so smooth even when it is loading files in background (mostly noticeable in a dual/quad core cpu, as the thread will run mostly in one core and loading in the other).

Then we have these abstract classes:

TPreview

TPlayablePreview (for videos, music, etc...)

TMultiPagePreview (for PDFs, PowerPoint presentations, etc...)

Then we have implementations of those classes:

abstract TPreview -> TPicturePreview (bmps, jpegs, ...), TVideoPreview (avis, mpegs, ...), TPDFPreview (pdfs)

abstract TPlayablePreview -> TPlayableVideoPreview (TVideoPreview)

abstract TMultiPagePreview -> TMultiPagePDFPreview (TPDFPreview)

So, for example, when you look at a video, you are really looking at an instance of type TPreview, more precisely an instance of TVideoPreview (polymorphism).

Then, the TPreview class has defined a isPlayable( ) method, the TVideoPreview implementation returns True in that method's implementation, so when the user clicks the video to play it, TFlyingCow calls TPreview.getPlayablePreview(...) : TPlayablePreview and it gets an instance of TPlayableVideoPreview (polymorphism again) which in turn sends a stream of images (the video being played) to TFlyingCow.

I'm considering releasing the sources of this after reorganizing the code a bit.

Oh I almost forgot, for PDF previewing I'm using a CygWin port of a Linux tool (yeah, kinda messy) called xpdf, stripped down to pdfinfo, pdftoppm, cygwin runtimes, freetype library, type1 library and 14 ghostscript fonts.

Link to comment

This shows great potential! I'll definitely be watching the development of this. A little off-topic: have you thought of adding this sort of this to WinExpose? I remember you said that development of it has been suspended but I think this would be a great addition to the traditional expose' window tiling. It'd also add something different to the concept of window switching. Also, any word on the development of Cubic Desktop? I hope that hasn't been suspended as well because it was really shaping up to be a permanent fixture on at least this desktop.

Thank you for all the hard work you put into these projects!

Link to comment
Thanks, matonga for the answer. I'm making my version in C# and XAML. It's much simpler to manipulate images from XAML (just few lines of code), and make the animation.

That's great, the more options users have, the better (and if they are gratis options, then better yet!).

Hope to see your version soon. ;)

Link to comment

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...