ストレージボリュームがマウントされているかマウント解除されているかを検出する必要があるアプリに取り組んでいます。そのために使っGIO
ています。mount-added
との信号を聞いていmount-removed
ます。ペンドライブをマウント/アンマウントすると、すべて正常に動作します。ただし、iPod のマウント時に問題が発生します。マウントとアンマウントでそれぞれ 2 つのコールバックを取得しています。GMount
オブジェクトの 1 つがシャドウされると想定しましたが、g_mount_is_shadowedは両方に対して false を返します。どちらを処理し、どれを無視するかを決定するにはどうすればよいですか? 両方処理できません。ストレージ デバイスに対応するマウント/アンマウントを検出し、それのみを処理する必要があります。
int main()
{
g_type_init();
GVolumeMonitor* volume_monitor = g_volume_monitor_get();
g_signal_connect(G_OBJECT(volume_monitor), "mount-added", G_CALLBACK(mount_added), NULL);
g_signal_connect(G_OBJECT(volume_monitor), "mount-removed", G_CALLBACK(mount_removed), NULL);
GMainLoop* main_loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(main_loop);
...
}