Autor Thema: INDIRECT-Flag  (Gelesen 20140 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

guest916

  • Gast
INDIRECT-Flag
« am: So 17.02.2008, 00:16:51 »
Hallo zusammen,

Wer kann einem alten, blutigen C-Anfänger die Verwendung des INDIRECT-Flags erläutern? Wohin genau mit der Adresse meiner Struktur? Muß ich ob_spec.indirect casten? u.s.w Die PureC-Hilfe schweigt sich aus; die Bücher, die ich konsultierte handeln das Thema mit einem Zweizeiler ab und die Texte im Internet sind allesamt zu pauschal. Ein Beispiellisting wär schön. Bitte!!! Ichbin verzweifelt....

Danke, Fausti

Übrigens: Kennt sich jemand mit MROS aus?

gstoll

  • Gast
Re: INDIRECT-Flag
« Antwort #1 am: So 17.02.2008, 16:05:44 »
Leer
« Letzte Änderung: Fr 24.09.2010, 09:59:19 von gstoll »

guest916

  • Gast
Re: INDIRECT-Flag
« Antwort #2 am: So 17.02.2008, 20:00:20 »
Hallo Gerhard, Danke für die promte Antwort.
Ich benötige dies meist für BOXTEXT-Objekte, dachte allerdings, daß es im Handling keinen Unterschied gibt.
Jedenfalls enden Kompilierversuche kläglich mit "Illegal structure operation" in Zeile:

X_Ob_Spec.Ob_Spec = tree[objc].ob_spec;

(Sowohl mit BOXTEXT- als auch mit BOX-Objekten.)
Ich kanns mir nicht erklären.

Danke
Gruß Thomas

gstoll

  • Gast
Re: INDIRECT-Flag
« Antwort #3 am: Mo 18.02.2008, 19:42:21 »
Leer
« Letzte Änderung: Fr 24.09.2010, 09:59:30 von gstoll »

guest916

  • Gast
Re: INDIRECT-Flag
« Antwort #4 am: Mo 18.02.2008, 21:49:59 »
Hallo Gerhard,
erstmal Danke für Deine Hartnäckigkeit...

Zitat
Also den Satz verstehe ich nicht. Du hast das schonmal für BOXTEXT-Objekte gemacht? Im Bezug auf welche Handling soll kein Unterschied sein.

Damit meine ich, daß das erste Element meiner Struktur eh immer ein long sein muß, um den Zeiger auf ob_spec aufzunehmen, oder irre ich da?

Zitat
Mir ist immer noch nicht klar für was Du das benötigst.

Von vorn:
Ich beabsichtige, einen Editor für (nicht schmunzeln) den Yamaha MU80 zu schreiben, der auch als Accessory neben Cubase läuft. Dabei sind ca. 310 Parameter zu editieren für die ich "Buttons" vom Typ G_BOXTEXT auserwählte. Funktioniert soweit auch, allerdings noch über einen Haufen von case-Verzweigungen und einem Feld von Strukturen, in denen die Adressen und einige andere Parameter für den jeweiligen "Button" hinterlegt sind. Intelligenter wäre es meines Erachtens, das INDIRECT-Flag zu benutzen und diese Struktur mit dem "Button" zu verknüpfen, so das ich mit Betätigung des "Buttons" zum Beispiel die Speicheradresse des zu editierenden Parameters erhalte.

Zitat
Das folgende sollte nun gehen. Ist jetzt speziell für G_BOX, G_IBOX:

Stimmt, hab das mit TEDINFO *_tedinfo probiert und es läßt sich kompilieren, wie aber greife ich auf die anderen Elemente von X_Ob_Spec zu? Ich erhalte in allen Fällen eine Warnung "...not part of structure..."

Zitat
Ich muß direkt mal schauen ob XaAES damit klar kommt.

Nur keine Umstände wegen mir. Ich benutze TOS 4.04 und AES 3.40 und was anderes kommt auch nicht in Frage, weil Cubase meines Wissens unter keinem anderen System läuft.

Vielen Dank
Gruß Thomas

gstoll

  • Gast
Re: INDIRECT-Flag
« Antwort #5 am: Di 19.02.2008, 20:54:17 »
Leer
« Letzte Änderung: Fr 24.09.2010, 09:59:40 von gstoll »

Offline matashen

  • Benutzer
  • Beiträge: 1.779
Re: INDIRECT-Flag
« Antwort #6 am: Di 19.02.2008, 21:53:09 »
Mich würde mal ein Screenshot von der Software interessieren.
Have you played Atari today ?!

guest916

  • Gast
Re: INDIRECT-Flag
« Antwort #7 am: Mi 20.02.2008, 01:22:12 »
Hallo Gerhard,

vielen Dank für Deine Hilfe. Jetzt funktioniert alles fehler- und warnungsfrei und weitgehend wie erwartet. Bei dem erweiterten Beispiel in Lektion 3 ist dann der Knoten geplatzt. Mir fehlt halt noch etwas die Routine in C.

Gruß Thomas

guest916

  • Gast
Re: INDIRECT-Flag
« Antwort #8 am: Mi 20.02.2008, 01:46:15 »
Hallo matashen,

Da ich nicht weiß, ob und wie man in so einem Forum Dateien hin- und herschicken kann, wohl aber den Knopp zum URL einfügen fand versuch ich´s mal auf diese Weise:

http://home.tiscali.de/fausti/MU80XGED/SNAP001.GIF
http://home.tiscali.de/fausti/MU80XGED/SNAP002.GIF
http://home.tiscali.de/fausti/MU80XGED/SNAP004.GIF
http://home.tiscali.de/fausti/MU80XGED/SNAP005.GIF
http://home.tiscali.de/fausti/MU80XGED/SNAP006.GIF

Ich hoffe, das klappt...

Aber: Alles noch ganz frühes Embryostadium, das kann und wird sich sicherlich noch mehrfach ändern. Übrigens, die Soundauswahl über Popupmenü (d.h. geht erst ab AES 3.31) das war sooo schön einfach. Mein Traum wäre natürlich der Speicherzugriff auf Steinbergs Studiomodul, für das ich einen MU80-Treiber zusammengebastelt habe, weil ich eigentlich mit dem Programm nur editieren wollte.

Gruß Thomas

Offline Dennis Schulmeister

  • Moderator
  • *****
  • Beiträge: 535
  • Do be do be do -- Sinatra.
Re: INDIRECT-Flag
« Antwort #9 am: Mo 03.03.2008, 19:38:30 »
Hallo Thomas,

ich finde das ein tolles Projekt, ehrlich. Von den Screenshots her gefällt mir das Programm sehr gut!

Auf was für einem ATARI entwickelst du es? Welchen Compiler verwendest du? Und welchen Editor / Befehlsinterpreter? Sind ein paar viele Fragen, ich weiß. Aber ich bin einfach neugierig. ::)

Gruß,
Dennis 8)
Wenn ich mal groß bin, will ich bei Atari arbeiten.

Offline Dennis Schulmeister

  • Moderator
  • *****
  • Beiträge: 535
  • Do be do be do -- Sinatra.
Re: INDIRECT-Flag
« Antwort #10 am: Mo 03.03.2008, 19:39:21 »
PS: Wenn man einen neuen Beitrag verfasst (nicht im Schnelleditor), gibt es unter dem Eingabefeld eine Klapptafel "Erweiterte Optionen". Dort kann man dann zwei kleine Dateien an einen Beitrag anhängen.
Wenn ich mal groß bin, will ich bei Atari arbeiten.

guest916

  • Gast
Re: INDIRECT-Flag
« Antwort #11 am: Do 06.03.2008, 12:59:46 »
Hallo Dennis,

Danke für die Tpps, die Neugier und die Komplimente.
Ich entwickle auf einem Falcon 030 mit 14MB RAM, Skunk mit 32MHz und Screenblaster3. Plus CD-Rom, 2GB IDE Tastaturinterface und Midex; alles im Tower. Anfangs programmierte ich irgendwann Ende 2006 mit GNU-C unter der Testversion von Agnus ein kleines Progrämmchen ohne Oberfläche zum Editieren der Parameter des MU80. Ich war überrascht, wie einfach das war und wieviel Spaß das machte und so wuchs in mir der Wunsch, eine Oberfläche zu programmieren. Da aber erstens die Hardware-Uhr meines Falcon den Geist aufgab und somit das Kompilieren unter Test-Agnus ein Glücksspiel war und ich zweitens der GNU-Bibliothekenkopiererei und -umbenennerei nicht mehr Herr wurde, durchkramte ich Ende 2007 meinen Sack mit Atari-Disketten und fand PureC 1.0, welches ich auf 1.1 updatete. Damit begann die Oberflächenprogrammierung, die ich mir anfangs bedeutend leichter vorstellte. Die Resource-Datei ertsellte ich mit Interface.
Der Quelltext des Programms würde einem C-Profi wahrscheinlich die Tränen in die Augen treiben aber ich bin ein Neuling auf dem Gebiet und noch am Lernen...

Gruß Thomas