DVD menu coding - menu

As a programmer I have no idea how one would go about programming menus for a DVD, I have heard that this is possible, and even seen basic games using DVD menus - although it may very well be a closed-system. Is it even possible and if so, what language, compilers etc exist for this?

There are a couple of open source projects that can create DVDs plus menus. I recently used dvd-slideshow to create a simple dvd with menus etc. Another one is DVD Styler. All of these programs are basically a front-end for various command-line tools for encoding, menu creation etc. Since these are open source projects you can have a look at the source and check out how they accomplish this.

The DVD menus that appear on a typical movie DVD are described in the DVD-Video standard: wikipedia.
If you are trying to create this type of menu, there are many programs that will create these. I have had luck with DVD Styler.
If you are creating an application that is distributed on a DVD, the choice of programming language is up to you. I suppose you could use some sort of OS auto-start feature to run an application that would bring up a menu for the user.

The WIKI States (in 2011) "
Programming interfaceA virtual machine implemented by the DVD player runs 'bytecode' contained on the DVD. This is used to control playback and display special effects on the menus. The instruction set is called the Virtual Machine (VM) DVD command set. There are 16 general parameter registers (GPRM) to hold temporary values and 24 system parameters (SPRM). As a result of a moderately flexible programming interface, DVD players can be used to play games, such as the DVD re-release of Dragon's Lair, along with more sophisticated and advanced games such as Scene It, all of which can be run on standard DVD players.

Looks like http://dvdauthor.sourceforge.net/ is able to help here since you can use command line interface and feed xml files.
You may need to write a framework which can generate xml files (and other content) from your game authoring tool.

Related

DAW Audio Plugin Development for Non-Destructive Operations (e.g. Cut, Fade)

I want to create a plugin for DAWs such as Adobe Audition or Pro Tools, etc. that would do something like this:
Download a text file (just into the memory would be enough)
Apply the commands in this file (mostly cut and potentially cross-fade operations) to a project file in a non-destructive manner as if the user just would have done it manually
Allow the user of the DAW the possibility to keep or remove the individual cuts
Now, I know there are VST, VST3, Audio Unit, etc. But additionally some tools might have their own plugin or add-on functionality. But since this is more a "tool" than an instrument (VSTi) or effect (VSTfx), I'm not sure if these systems are the right way to go.
What would be the recommended way of going about developing such a plugin?
Reaper DAW allows such funtionality with ReaScript
There are numerous Reascript examples out there which you can checkout already - ReaTeam Scripts
Ok, I got an answer in the Juce forum. I go ahead and quote the summary of the finding:
So if I understand correctly the way through the plugin architecture doesn’t work for this scenario.
That means such a plugin needs to be developed for each individual DAW, given a supported SDK to build it?
So for example for Adobe Audition we’d need to use the Adobe Audition SDK. For Pro Tools this one or Reaper with ReaScript.

In IBM z are display files (dspf) like in IBM i?

In an IBM i/AS400 there are display files (DSPF) which is used to design / create screens.
DSPF (display file) in AS/400 is a file with definitions to format a screen to show and to receive data.
Are there similar files in zOS?
Screens on z/OS are specific to a subsystem.
In ISPF you would use Dialog Tag Language and/or panel definition statements to create a screen (ISPF calls it a panel).
In CICS you would use Assembler macros to create a BMS map (the screen).
In IMS you would use Message Format Services to create a screen.
As indicated in #SteveIves answer, there exist products to "paint" a screen.
All of the above are used to create 3270 screens; these days of course almost all 3270 devices are emulated. This is not the only way to create a user interface for a z/OS application. CICS, for example, understands http and it is relatively common to have a web interface to a CICS application.
There are no such files by default in z/OS. There are software products that have screen definitions - ISPF and Telon being 2. ISPF (Interactive System Productivity Feature) is the ‘default’ UI under TSO and you can create your own screens, but these are not dsp files.
Telon is (I think) some sort of screen layout/definition utility used to create applications running under IBM’s CICS. These are also not dsp files.
I won't duplicate #cshneid or #steve_ives answers but will provide some context. IIRC Display Files are more than screen mapping and include definitions for processing the data to be presented so they are more akin to a fuller programming paradigm than just mapping.
I'm not aware of a feature that incorporates both mapping of data and processing of files. This is accomplished based on the runtimes (CICS, IMS, etc.) for 3270 streams. Generally this is a combination of the mapping tools mentioned along with a programming language like COBOL, C, or other that are compatible with the runtime.
The closest I think you come is Dialog Manager in the TSO runtime which does have some data management capability but tends to be used for system level work and not user applications which are generally relegated to CICS, IMS, WAS, ...

as/400: other way for display graphics?

I'm aware of the existence of DDS files which allow programming of display graphics on the as/400, but is there another way?
Specifically, what I want to do is manipulate the terminal buffer directly to be able to display anything else than just text.
For example, the terminal looks like that:
Let's say, in memory, there would be a two dimensional char array: text[20][80] for the text menu and lower than that, there would be a pixel buffer array of size [200][800].
Is there a way to access either of those arrays directly?
I would like to be able to create a displayable menu entirely in C without the need of a display file and also display other kind of graphics (images) directly in the pixel buffer.
Is there a way to access either of those arrays directly?
That's easy enough, though a "display file" that has no formatted fields will still be needed. The 'file' will be the connection between the program and the physical device (or the emulator). You can define a single large area that contains whatever "text" you want your program to put into it. This can even include display field attributes that delimit input areas.
For the most control, the DDS USRDFN keyword is appropriate. But for simple stuff like lists of menu items, almost any large text field can be output to.
Outputting simple text is easy. For detailed stuff like USRDFN formatting, detailed understanding of the 5250 protocol is needed.
One kind of alternative would be to use User Interface Manager (UIM) APIs to update a PANEL's "text area" (:TEXT) via its USREXIT= application program. The UIM handles everything as far as any "display file" definition and actual I/O goes. The UIM can be thought of as a HTML interface for 5250 and uses a very similar markup language to define PANELs.
Another alternative is the Dynamic Screen Manager (DSM) APIs. These give much finer control than the UIM or DDS methods (though DDS USRDFN gets very close). But as with USRDFN, actual device control will require 5250 protocol knowledge.
...and also display other kind of graphics (images) directly in the
pixel buffer.
There is no "pixel buffer" for 5250 nor even 'pixels'. It's a character-based protocol, like telnet. If you're going for images or 'pixels', you're into browser interfaces, or perhaps Java and NAWT, or X-windows, etc.
Now, granted that with TCP/IP and sockets, you can do essentially anything that you're able to program. Whatever you can figure out how to do, including downloading/installing 3rd-party code libraries, you can do -- within the network restrictions surrounding your server. But it is in fact a server, so GUI kinds of apps generally shouldn't run on it. That's the same as for almost all types of servers. Code the GUI on the client system rather than the server. But you can do it if you really want to.
I'm not sure why you'd want to do this...
Now-a-days, it'd be much easier to simply generate your output as HTML and serve it up via the integrated apache web server.
But if you really want to do graphics via 5250, it can be done...theoretically at least. In 20+ years on the platform, I've never seen it.
But way back when (1994?), IBM added support for Graphical Data Display Manager (GDDM) and Presentation Graphics APIs into OS/400. "GDDM is a means of
displaying, printing, or plotting pictures. Presentation Graphics routines are a
means of displaying, printing, or plotting business charts."
The support is still in the OS. However, client side support is NOT available in IBM i Access for Windows or the most recently released client, IBM Access Client Solutions (ACS). It appears that the standalone IBM Personal Communications product may support GDDM.
For complete control of the character buffer, take a look at the Dynamic Screen Manager (DSM) APIs. The DSM APIs are "a set of screen I/O interfaces that provide a dynamic way to create and manage screens for the Integrated Language Environment® (ILE) high-level languages. Because the DSM interfaces are bindable, they are accessible to ILE programs only."
There is a way to do it in ILE C/C++. This was very fun to investigate since I haven't tried it myself.
The only documentation on it (page 183+) I could find is from 5.1, but you are able to cross reference the functions used to this 7.3 manual (possibly page vii/7) to see if they're still used the same.
Hope this helped!

Semantic Technologies for different Operating Systems

I'm trying to write an application that categorizes a certain type of file, music for example, or pictures. As part of the application users would be able to tag items so as to make searching more efficient. These tags could be location and place of a picture, or it could be the camera it was taken with, or even the emotion that a person feels when looking at the picture.
I can foresee that this information would be very useful to the operating system for it's desktop wide searches. That way users would not have to open my application to search for content based on the tags they provide.
I'd like to know what technologies are native to different operating systems/desktop environments. I know of (meta?)tracker for Gnome, and I'd be interested in hearing about equivalent for KDE, Windows and Mac OSX.
For KDE I can point out:
digiKam for images management
amaroK for music
I think they both do what you want. However, I'm not quite sure what is the scope of your question: are you just looking for existing tool for tagging/rating images/music?
Well, this question has been out for a while and I've done research since I asked this question, and here is what I've found.
For KDE there is a component called Strigi, which is required by plasma, and this provides the file tagging and search functionalities along with something called Nepomuk.
Gnome has tracker, which does the same thing, and seems to be a component of the Gnome desktop.
Windows has tagging, but I haven't found out how one can programmatically access the tags on the files, or how generic they are. However it is only possible to tag certain file types, so txt files for example can not be tagged.

walking through a building created in google sketchup

I am looking for a way to take a model of a building and allow people to walk through it like a video engine.
We are also looking to run this on a viz wall, which requires OpenGL on Linux and be open source. But Something running on windows or closed source on Linux would be better than nothing.
I have found Panda3D, but I am not sure that will perform well enough for such a large model, the .egg file was over 200MB and took over 8GB of RAM to convert to their binary format.
None of our prefessors know about this, and we are having trouble finding the tools we need.
Try Flux Player, i used this on a school project a while ago.
If i recall correctly i had to export the sketchup file with the extention that the program needs, but i don't remember at the moment which one was that.
http://www.redorbit.com/news/technology/854384/media_machines_releases_flux_studiotm_20_and_flux_playertm_20/
software belongs to "media machines"
this is basically a plugin that allows you to navigate the models on a web browser using your cursor or mouse.
I believe that there are other solutions out there that allow you to do exactly what you want.

Resources