]> sigrok.org Git - sigrok-qt.git/commitdiff
srd: Every callback should have a 'void *' parameter.
authorUwe Hermann <redacted>
Sat, 11 Feb 2012 21:38:17 +0000 (22:38 +0100)
committerUwe Hermann <redacted>
Sat, 11 Feb 2012 21:41:33 +0000 (22:41 +0100)
This is required in various situations and for various lib users,
especially so GUIs which might want to pass specific info via this
mechanism.

mainwindow.cpp

index 0b0db66e434fb4f31537982b24a1d969afa03154..26247c34c0136cc94e3693fdb35175e76644ff1b 100644 (file)
@@ -795,13 +795,15 @@ void MainWindow::on_actionProtocol_decoder_stacks_triggered()
        form->show();
 }
 
-extern "C" void show_pd_annotation(struct srd_proto_data *pdata)
+extern "C" void show_pd_annotation(struct srd_proto_data *pdata, void *data)
 {
        char **annotations;
 
        annotations = (char **)pdata->data;
 
-       w->ui->plainTextEdit->appendPlainText(
+       MainWindow *mw = (MainWindow *)data;
+
+       mw->ui->plainTextEdit->appendPlainText(
                QString("%1-%2: %3: %4").arg(pdata->start_sample)
                        .arg(pdata->end_sample).arg(pdata->pdo->proto_id)
                        .arg((char *)annotations[0]));
@@ -843,7 +845,8 @@ void MainWindow::on_actionQUICK_HACK_PD_TEST_triggered()
                return;
        }
 
-       if (srd_register_callback(SRD_OUTPUT_ANN, (srd_pd_output_callback_t)show_pd_annotation) != SRD_OK) {
+       if (srd_register_callback(SRD_OUTPUT_ANN,
+           (srd_pd_output_callback_t)show_pd_annotation, (void *)this) != SRD_OK) {
                ui->plainTextEdit->appendPlainText("ERROR: srd_register_callback");
                return;
        }