http://www.spinellis.gr/pubs/trade/1993-Winmag/fastwin3/html/win3.html
This is an HTML rendering of a working paper draft that
led to a publication.
The publication should always be cited in preference to this
draft using the following reference:
- Diomidis Spinellis.
Implementing
multimedia applications: Development tools.
Win Magazine, pages 65–68, June 1993.
In Greek.
The document's metadata is available in BibTeX format.
Find
the publication on Google Scholar
This material is presented to ensure timely dissemination of
scholarly and technical work. Copyright and all rights therein are
retained by authors or by other copyright holders. All persons
copying this information are expected to adhere to the terms and
constraints invoked by each author's copyright. In most cases, these
works may not be reposted without the explicit permission of the
copyright holder.
Diomidis Spinellis Publications
|
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ MULTIMEDIA
Διομήδης Δ. Σπινέλλης
Multimedia Products Technical Support
FAST Hellas S.A.
Εθνικής Αντιστάσεως 14α, 152 32 Χαλάνδρι
Στα προηγούμενα δύο άρθρα της σειράς οριοθετήσαμε τις εφαρμογές
multimedia, και εξετάσαμε τους μηχανισμούς ένθεσης κινούμενης εικόνας
σε συνδυασμό με την κάρτα ένθεσης Screen Machine, καθώς και
τις βασικές παραμέτρους και εναλλακτικούς τρόπους ελέγχου της.
Επικεντρώσαμε την προσοχή μας στον προγραμματισμό με βάση τη
γλώσσα C στο περιβάλλον των Windows.
Στο άρθρο αυτό θα εξετάσουμε σε περισσότερο βάθος τη χρήση δυναμικά
συνδεομένων βιβλιοθηκών σε συνδυασμό με το περιβάλλον δημιουργίας
εφαρμογών Video Workbench.
Το περιβάλλον προγραμματισμού Video Workbench
Οπως είδαμε και σε προηγούμενες ενότητες τα χαρακτηριστικά που
μπορούν να ελεγχθούν σε μια εφαρμογή ένθεσης κινούμενης εικόνας
είναι ορισμένα και πεπερασμένα.
Τα βασικά από αυτά αφορούν τη θέση και το μέγεθος
της εικόνας, τον καθορισμό των παραμέτρων παρουσίασης
(λαμπρότητα, κορεσμός χρωμάτων, κινούμενη ή σταθερή εικόνα),
τον ορισμό φίλτρων και ειδικών εφέ, και τέλος την αποθήκευση των
σταθερών εικόνων.
Ο καθορισμένος τρόπος επικοινωνίας του χρήστη με το περιβάλλον των
Windows υπαγορεύει και συγκεκριμένο τρόπο ελέγχου των παραμέτρων
αυτών.
Ετσι η θέση και το μέγεθος της εικόνας είναι αυτονόητο ότι πρέπει να
καθορίζονται με τις τυποποιημένες κινήσεις του ποντικιού πάνω στο
πλαίσιο του παραθύρου της, και θα περίμενε κανείς οι άλλες παράμετροι
να ελέγχονται μέσα από τυποποιημένα ((πλαίσια διαλόγων)) (dialog boxes).
Η λειτουργικότητα αυτή είναι σχετικά σύνθετη, τυποποιημένη και μάλλον
απαιτητή από κάθε εφαρμογή ένθεσης κινούμενης εικόνας.
Γι' αυτούς τους λόγους αποτελεί και ιδανικό υποψήφιο για να παρέχεται
με τη μορφή μιας βιβλιοθήκης.
Αυτό ακριβώς είναι το περιβάλλον προγραμματισμού Video Workbench
που συνοδεύει τα εργαλεία προγραμματισμού της Screen Machine.
Είναι ένα σύνολο από λειτουργίες ((υψηλού επιπέδου)) που διευκολύνουν
την γρήγορη υλοποίηση εφαρμογών ένθεσης εικόνας.
Ενώ οι συναρτήσεις που εξετάσαμε στο προηγούμενο άρθρο ελέγχουν τη
Screen Machine σε ((χαμηλό επίπεδο)) οι συναρτήσεις που
προσφέρει το Video Workbench αυτοματοποιούν μεγάλο μέρος της
λειτουργικότητας της Screen Machine μέσα από τυποποιημένα ((πλαίσια
διαλόγων)) για τον καθορισμό των παραμέτρων, τον αυτόματο καθορισμό
των διαστάσεων του παραθύρου και την αποθήκευση των αρχείων.
Οι συναρτήσεις αυτές μπορούν να κληθούν είτε μέσα από τη γλώσσα C
σαν κανονικές συναρτήσεις, ή να δοθούν με τη μορφή σειρών χαρακτήρων
(character strings)
από οποιαδήποτε εφαρμογή υποστηρίζει δυναμικά συνδεδεμένες βιβλιοθήκες
(dynamic link libraries --- DLL) π.χ. Visual Basic, Toolbook,
Access Basic, Superbase 4.
Τα πλεονεκτήματα αυτού του τρόπου υλοποίησης είναι τα παρακάτω:
- Η γρήγορη υλοποίηση των εφαρμογών.
-
Συχνά αρκεί η προσθήκη μίας ή δύο
εντολών σε μία εφαρμογή για να μπορέσει αυτή να συνεργαστεί με την
κάρτα ένθεσης εικόνας και να αποκτήσει χαρακτηριστικά multimedia.
- Η τυποποίηση του τρόπου ελέγχου της ένθεσης.
-
Οταν όλες οι εφαρμογές χρησιμοποιούν τον ίδιο τρόπο υλοποίησης, τότε
τα ((πλαίσια διαλόγου)) και οι διαδικασίες ελέγχου της εικόνας παραμένουν
ίδιες ανάμεσα στις εφαρμογές.
Ετσι ο τελικός χρήστης δε χρειάζεται να εκπαιδεύεται για τον τρόπο χρήσης
κάθε εφαρμογής χωριστά.
- Η αυτόματη αναβάθμιση των εφαρμογών.
-
Επειδή το Video Workbench είναι υλοποιημένο με τη μορφή DLL
νεότερες εκδόσεις του αναβαθμίζουν αυτόματα και τις εφαρμογές που το
χρησιμοποιούν.
- Η συμβατότητα με πολλά περιβάλλοντα προγραμματισμού.
-
Ο απλός τρόπος επικοινωνίας με το Video Workbench καθιστά δυνατή
την επικοινωνία με βάση σειρών χαρακτήρων χωρίς περίπλοκα πρωτόκολλα
επικοινωνίας και σύνδεσης, και κατά συνέπεια με οποιαδήποτε
εφαρμογή υποστηρίζει DLL ή άλλους εξωτερικούς οδηγούς.
Από την άλλη πλευρά πρέπει να αναφέρουμε ότι εφαρμογές που απαιτούν
παραπάνω λειτουργίες από αυτές που προσφέρει το Video Workbench
είναι πιθανό να χρειαστεί να υλοποιηθούν με βάση τη βιβλιοθήκη
SM-API που παρουσιάσαμε στο προηγούμενο άρθρο.
Γενικά πάντως έχουμε διαπιστώσει ότι οι περισσότερες εφαρμογές
multimedia που περιλαμβάνουν ένθεση εικόνας μπορούν να καλυφθούν
από τη λειτουργικότητα του Video Workbench.
Περιγραφή της λειτουργικότητας του Video Workbench
Το Video Workbench στην απλούστερη μορφή του παρουσιάζεται
ως ένα παράθυρο των Windows με ενσωματωμένη ένθετη κινούμενη
εικόνα, τις τυποποιημένες δυνατότητες ελέγχου της θέσης και
του μεγέθους του, και ένα σύνολο από μενού που ενεργοποιούνται σε
οποιοδήποτε σημείο του παραθύρου με το αριστερό κουμπί του ποντικιού
(βλ. σχήμα).
Σχήμα: Παράθυρο
με τις επιλογές
του Video Workbench
Στις επόμενες ενότητες θα εξετάσουμε αναλυτικά τη χρήση και τις εντολές
του Video Workbench.
Τρόποι χρήσης του Video Workbench
To Video Workbench όπως αναφέραμε και παραπάνω μπορεί να χρησιμοποιηθεί
με δύο διαφορετικούς τρόπους:
Σχήμα: Παράθυρο
με τις επιλογές
ρύθμισης
των χρωμάτων.
- Με την απευθείας κλήση συναρτήσεων της C.
-
Με αυτό τον τρόπο η χρήση του Video Workbench γίνεται
με τον ίδιο τρόπο όπως και για οποιαδήποτε άλλη βιβλιοθήκη των
Windows.
Ετσι για να εμφανίσουμε π.χ. το κουτί διαλόγου της επιλογής
των χρωμάτων (βλ. σχήμα)
στη θέση (50, 100) της οθόνης, αρκεί να καλέσουμε τη συνάρτηση
smwb_OpenDialogBox(50, 100, WBDB_COLORS).
- Με τη μεταβίβαση σειρών χαρακτήρων σε ένα συντακτικό αναλυτή (parser).
-
Το Video Workbench περιλαμβάνει ενσωματωμένο ένα συντακτικό αναλυτή
ο οποίος μπορεί να αποκωδικοποιεί και να καλεί την εντολή της οποίας το
όνομα δόθηκε στον αναλυτή.
Αντίστοιχα λοιπόν το παραπάνω παράδειγμα με τη χρήση του συντακτικού
αναλυτή και μέσα π.χ. σε περιβάλλον Access Basic, μετατρέπεται σε
Ok% = SM_Parser("OPENDIALOG 50 100 COLORS").
Η συνάρτηση SM_Parser έχει προηγουμένως δηλωθεί στην Access Basic
ως εξωτερική συνάρτηση βιβλιοθήκης DLL
ενώ η σειρά χαρακτήρων μέσα στα εισαγωγικά αποκωδικοποιείται από το συντακτικό
αναλυτή για να κληθεί η αντίστοιχη συνάρτηση της C.
Βασικές εντολές του Video Workbench
Το Video Workbench ενεργοποιείται εύκολα με την συνάρτηση
smwb_LinkVideoWorkBench(...) (ή με την εντολή του
διερμηνευτή LINKVWB).
Η εντολή αυτή ενεργοποιεί το Video Workbench
μέσα σε ένα συγκεκριμένο παράθυρο και παίρνει ως παραμέτρους
το παράθυρο μέσα στο οποίο θέλουμε να εμφανιστεί η εικόνα,
το αν επιθυμούμε την εμφάνιση
των τυποποιημένων μενού με το δεξί πλήκτρο του ποντικιού μέσα στο
παράθυρο της εικόνας, και
το αν η εικόνα θα είναι ζωντανή ή ((παγωμένη)).
Μία παρόμοια συνάρτηση η smwb_OpenVideoWorkBench(...) (
OPENVWB για το διερμηνευτή) προσφέρει
την ίδια λειτουργικότητα με μεγαλύτερη ευελιξία επιτρέποντας τον καθορισμό
της θέσης, του μεγέθους και των χαρακτηριστικών του παραθύρου που
θα περιέχει το Video Workbench.
Οταν η εφαρμογή που χρησιμοποιεί το Video Workbench τερματίσει
πρέπει να καλέσει τη συνάρτηση smwb_CloseVideoWorkBench(...)
(CLOSEVWB ως εντολή του διερμηνευτή) για να αποσυνδέσει τον
έλεγχο του παραθύρου από την ένθετη εικόνα.
Τα μενού που μπορούν αυτόματα να εμφανιστούν μέσα στο παράθυρο ένθεσης
μπορούν να ελεγχθούν με την συνάρτηση smwv_MenuVideoWorkBench(...).
Η συνάρτηση αυτή παίρνει ως παραμέτρους τους κωδικούς των μενού
που θέλουμε να επιτρέψουμε ή να αποκλείσουμε από την εφαρμογή μας.
Αν ο τρόπος επιλογής των μενού από την ένθετη εικόνα δε μας ικανοποιεί,
τότε μπορούμε να εμφανίσουμε μία συγκεκριμένη ομάδα επιλογών με
την συνάρτηση smwb_OpenDialogBox(...) (OPENDIALOG).
Η παράμετρος της συναρτήσεως αυτής είναι ο πίνακας επιλογών που
θέλουμε να εμφανιστεί:
Σχήμα: Επιλογές
ρύθμισης
του ήχου
- AUDIO
- Επιλογές ρυθμίσεως ήχου (σχήμα).
Σχήμα: Επιλογές
ελέγχου εξωτερικών
συσκευών
- PLAYER
- Επιλογές ρυθμίσεως εξωτερικής πηγής εικόνας (video,
δίσκος laser κ.λπ.) (σχήμα).
Σχήμα: Παράθυρο
με τις επιλογές
ρύθμισης
των χρωμάτων.
- COLORS
- Επιλογές ρυθμίσεως χρωμάτων (σχήμα).
Σχήμα: Επιλογές
ρύθμισης
παραμέτρων
της πηγής
- SOURCE
- Επιλογές ρυθμίσεως πηγής εικόνας (σχήμα).
Σχήμα: Επιλογές
ρύθμισης
θέσης και
μεγέθους.
- DISPLAY
- Επιλογές ρυθμίσεως παραμέτρων παρουσίασης (σχήμα).
Σχήμα: Πλαίσιο
διαλόγου αποθήκευσης
- FILESAVE
- Επιλογές αποθήκευσης εικόνας (σχήμα).
Οι πίνακες αυτοί μπορούν να ((κλείσουν)) με τη χρήση της συναρτήσεως
smwb_CloseDialogBox(...) (CLOSEDIALOG).
Δύο άλλες συναρτήσεις
η smwb_WriteImageFromWorkBench(...) (WRITEIMAGE) και
η smwv_ConvertImage(...) (CONVERTIMAGE) επιτρέπουν
την αποθήκευση και μετατροπή της εικόνας σε πολλούς διαφορετικούς
τύπους αρχείου.
Με αυτούς θα ασχοληθούμε πιο διεξοδικά σε επόμενο άρθρο.
Σύνδεση με περιβάλλοντα προγραμματισμού
Το Video Workbench με τη χρήση του συντακτικού αναλυτή μπορεί
εύκολα να συνδεθεί με πολλά και διαφορετικά περιβάλλοντα προγραμματισμού.
Στις επόμενες παραγράφους θα περιγράψουμε συνοπτικά το βασικό τρόπο
ένωσης του Wokbench με ορισμένες διαδεδομένες πλατφόρμες
αναπτύξεως εφαρμογών κάτω από Windows.
Visual και Access Basic
Για να χρησιμοποιήσουμε το Video Workbench μέσα από τη
Visual Basic ή την Access Basic πρέπει καταρχήν
να δηλώσουμε τη συνάρτηση του διερμηνευτή και τη
σύνδεσή της με τη βιβλιοθήκη DLL στο τμήμα των
καθολικών δηλώσεων (global declarations).
Αυτό γίνεται με την εντολή:
Declare Function SM_Parser Lib "SMPAR.DLL" (ByVal SCmd$) As Integer
Στη συνέχεια αν θέλουμε λ.χ. να παρουσιάσουμε την ένθετη εικόνα σε
μία ((φόρμα)) αρκεί να προσθέσουμε την εντολή:
Ok% = SM_Parser("OpenVWB 0 0 320 256 NONE CHILD SM 0 Video On Live On")
στο μήνυμα Form_Paint της φόρμας.
Σωστό είναι να προστατέψουμε την κλήση με κάποιο έλεγχο έτσι ώστε η
συνάρτηση να κληθεί μόνο μία φορά.
C --- SDK
Για να χρησιμοποιήσουμε τοVideo Workbench με τη γλώσσα C
πρέπει να προσθέσουμε τη δήλωση \#include "smwb.h" στην αρχή
του αρχείου μας.
Στη συνέχεια πρέπει να επιλέξουμε το παράθυρο στο οποίο θέλουμε να
έχουμε την ένθετη εικόνα και στη συνάρτηση χειρισμού των
μηνυμάτων του παραθύρου να προσθέσουμε την κλήση
smmwb_OpenVideoWorkbench στο μήνυμα WM_CREATE και
την κλήση smwb_CloseVideoWorkBench στο μήνυμα WM_DESTROY.
Ολες οι επιλογές μπορούν να δουλεύουν αυτόματα με τα μενού από το
χώρο της ένθετης εικόνας, ή μπορούμε αν θέλουμε να τα προσθέσουμε στα
μενού της εφαρμογής μας με τις κατάλληλες κλήσεις της συναρτήσεως
smwb_OpenDialogBox.
Toolbook
Για να χρησιμοποιήσουμε το Video Workbench μέσα από το Toolbook
πρέπει να προσθέσουμε στο ((σενάριο βιβλίου))
(Book Script) τις εντολές:
to handle enterbook
linkDLL "smpar.dll"
INT SM_Parser(STRING)
end linkDLL
end
to handle leavebook
unlinkDLL "smpar.dll"
end
Επιπλέον πρέπει να προσθέσουμε και στο ((σενάριο σελίδας)) (Page Script)
τις εντολές:
to handle enterpage
get SM_Parser("Open OpenVWB 15 18 320 256 Blank Child SM 0")
get SM_Parser("Menu Show All Video On")
end
to handle leavepage
get SM_Parser("Video Off CloseVWB Close")
end
Και σε αυτή τη περίπτωση όλες οι επιλογές διαλόγου εμφανίζονται αυτόματα
στο χώρο της ένθεσης.
ΣΥΝΕΧΙΖΟΝΤΑΣ
Στο επόμενο άρθρο της σειράς αυτής θα εξετάσουμε τους διαφόρους τρόπους
αποθήκευσης, μετατροπής και συμπίεσης σταθερών εικόνων.
Ελπίζουμε να το βρείτε ενδιαφέρον.
\enddocument
(C) Copyright 1993-97 Διομήδης Σπινέλλης. Επιτρέπεται η ελεύθερη ανάγνωση από browsers του WWW και παρόμοια προγράμματα. Με την επιφύλαξη κάθε άλλου δικαιώματος.